Yasuhiro Niji, フリーランサーに勤務中(2013〜現在)
TechEmpower Framework Benchmarks のページを見ればわかります。JSON serialization で1秒間で283,645件です。
ただし、その数字は現実的には殆ど意味がありません。
まず、一般的なWebサーバでは、ユーザー認証、データベースへのアクセス、HTML の作成等の処理をするので、その処理の時間の方がずっと長くなります。単に、Sanic の処理時間は無視できるというだけのことです。
また、Webアプリケーションで1秒間に1000件以上処理が必要になるケースは、それほどありません。まず、Niginx 等のWebサーバーの方で、静的ファイルの処理やキャッシュが可能です。そうしておけば、従業員1万人の会社の社内システムでも1秒間に1000件の処理が必要となるケースは少ないです。
現在でも、Dgango や Flask が主として使われているのは、一般的にはそれで十分なケースが多いためです。それで問題がある場合には、Python で Sanic を使うより、一般的にはスピードが速く並列処理の機能が充実している Go 言語を使った方がベターなケースが多いと思います。なお、ここで言っているのは、Sanic を使うなということではなくて、1秒間の処理件数が非常に多くなる場合には、その処理には Python そのものが向いていないことが多いという意味です。
ご回答ありがとう御座います。
>Python で Sanic を使うより、一般的にはスピードが速く並列処理の機能が充実している Go 言語を使った方がベターなケースが多いと思います。
>Python で Sanic を使うより、一般的にはスピードが速く並列処理の機能が充実している Go 言語を使った方がベターなケースが多いと思います。
- PythonのGILが、マルチスレッドを使ってもマルチコアの恩恵を受けれないようにしている。
こちらのブログが正しければ、一緒に考慮しますと、Pythonは、マルチコアCPUを生かせないプログラム言語だと言う事になります。AI(人工知能)や機械学習ライブラリを必要としないのであれば、PythonよりGo langの方が優れておりますが、Go lang用にAI(人工知能)や機械学習のライブラリが充実するか、PythonとフレームワークでマルチコアCPUを正式にサポートしていくかのどちらかが将来行われて解決して行くことを祈っております。なお、Go lang用でもTensorFlowと言うGoogleが開発したAI、機械学習、数値解析ライブラリが御座います。Go langでもこのAPIが使えますが、今はまだ、モデルの構築、学習が出来るのはPythonだけらしいので、将来改善される事を希望致します。
0 件のコメント:
コメントを投稿