[解決済み】PyPyが6.3倍速いなら、CPythonよりPyPyを使うべきじゃないのか?
2022-03-23 22:18:36
質問
について、よく耳にするようになりました。 PyPy プロジェクトに参加しています。よりも6.3倍高速だと言っています。 CPython のインタープリタです。 自社サイト .
Pythonのような動的言語について語るとき、スピードは最重要課題の1つです。これを解決するために、PyPyが6.3倍速くなったという。
第二の問題は並列性で、悪名高い グローバルインタープリターロック (GIL)です。これについては、PyPyでは は、GILなしのPythonを与えることができます。 .
PyPyがこれらの大きな課題を解決できるのであれば、より広く採用されることを妨げているその弱点は何なのでしょうか?つまり、私のような典型的なPython開発者がPyPyに乗り換えるのを阻んでいるものは何でしょうか? 今すぐ ?
解決方法は?
<ブロッククオート注意 PyPyは、この質問がなされた2013年当時よりも成熟し、サポートが充実しています。古くなった情報から結論を出すのは避けましょう。
-
PyPyは、他の人がすぐに言及したように、C拡張のサポートが希薄です。サポートはありますが、通常Pythonよりも遅い速度で、せいぜいあやふやなものです。そのため、多くのモジュールは単にCPythonを必要とします。
. 一部の拡張機能はまだサポートされていません( <ストライク パンダ, <ストライク SciPy など)を見てみましょう。 サポートされているパッケージの一覧 を変更してください。 なお、リスト上でunsupportedと表示されている多くのパッケージは、現在サポートされています。 - Python 3 対応 <ストライク は、現時点では実験的なものです。 が安定期に入りました! 2014年6月20日時点の情報です。 PyPy3 2.3.1 - Fulcrum がリリースされました。 !
- PyPyは、多くの人がPythonを使っている"scripts"に対して、実は速くないことがあります。これは、単純で小さなことを行う短時間実行のプログラムです。PyPyはJITコンパイラなので、その主な利点は長い実行時間と単純な型(数値など)から来ています。PyPyのJIT前の速度はCPythonと比較すると悪いかもしれません。
- 慣性 . PyPyに移行するには、しばしば再調整が必要で、一部の人々や組織にとっては単に面倒なだけです。
以上が、私に影響を与える主な理由と言えるでしょう。
関連
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] なぜPythonのコードは関数の中でより速く実行されるのですか?
-
[解決済み] なぜJavaでは2 * (i * i)の方が2 * i * iより速いのですか?
-
[解決済み] 8192個の要素にループをかけると、プログラムが遅くなるのはなぜですか?
-
[解決済み] なぜ[]はlist()よりも速いのですか?
-
[解決済み】PyPy -- CPythonに勝てるわけがない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
python string splicing.join()とsplitting.split()の説明
-
python implement mysql add delete check change サンプルコード
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Pythonの@decoratorsについてまとめてみました。
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] PythonとCpythonの比較