問題タブ [gil]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - コンカレント.futuresはGILの薬ですか?
私はこの新しい実装について検索していましたが、Python 2.7を使用しています。これをインストールする必要があるため、これを使用すると、CPythonのGILという単語を忘れてしまいますか?
python - PyPyは1つのプロセスで複数のCPUを使用できますか?
CPythonにはGILがあり、PyPyにはその問題はないと聞きました。これは本当ですか?
python - f2py 機能リリース GIL
f2py でラップされた関数を呼び出すと、グローバル インタープリター ロック (GIL) が解放されますか?
(私は自分で発見しようと喜んでいますが、どこから探し始めるべきかを知るには、でこぼこしたソースに精通していません)...
明確にするために、この質問に対する適切な回答は、numpy ソースのどこで a を探すべきかを知るのに役立つか、GIL がリリースされたPy_BEGIN_ALLOW_THREADS
かどうか (できればいくつかの証拠がある場合) を知らせてくれます。
python - フリーズした Python バイナリは、ローカル インタープリターとグローバル インタープリター ロック (GIL) にアクセスしますか?
私は、コマンドラインでインタープリターを使用して同じPythonスクリプトを呼び出すだけのLinuxマルチコアマシンで作業しています(実際には「python script.py」のみ)。十分にマシン リソース内にいるにもかかわらず、パフォーマンスが 1 回の呼び出しよりもはるかに遅いことがわかります。これは、インスタンスがグローバル インタープリター ロック (GIL) を介してインタープリターを共有しているためだと思います。つまり、いくつかのインスタンスが「シングル コア」で実行されることになります。スクリプトの凍結された Python バイナリ バージョン ( http://wiki.python.org/moin/Freeze ) で同じことを行うと、同じことが起こりますか? バイナリは「独自のインタプリタを持っている」ので、そうではないと思いますか?
python - GIL の代替がパフォーマンスに影響を与えるのはなぜですか?
Ruby と Python の Global Interpreter Lock (GIL) 全体が Java から来ているのは、ちょっと驚くべきことです。問題を少し読んだところ、Python のドキュメントで次の抜粋が見つかりました。
Global Interpreter Lock を取り除くことはできませんか?
グローバル インタープリター ロック (GIL) は、ハイエンドのマルチプロセッサ サーバー マシンに Python を展開する際の障害と見なされることがよくあります。マルチスレッドの Python プログラムは、(ほとんど) すべての Python コードは、 GILが保持されている間に実行されます。
Python 1.5 の時代に、Greg Stein は実際に包括的なパッチ セット (「フリー スレッド」パッチ) を実装して、GIL を削除し、きめ細かなロックに置き換えました。残念ながら、(ロックが非常に効率的な) Windows でも、通常の Python コードの実行速度は、 GIL を使用するインタープリターの約 2 倍遅くなりました。Linux では、pthread ロックがそれほど効率的ではないため、パフォーマンスの低下はさらに悪化しました。
私が見つけられなかったのは、パフォーマンスへの影響の背後にある説明です。私は技術的な理由が何であるかを見つけようとしましたが、それを突き止める良い議論を見つけることができませんでした.
Ruby と同様に、ここではさらに少ない情報しか見つかりませんでした。理由は同じですか?
python - GIL の存在をテストする一般的な方法はありますか?
GIL 実装の詳細に応じて、システム上で異なる動作をするマルチスレッド Python アプリケーションを作成しています。
私が実行しているインタプリタが CPython スタイルの GIL を持っているかどうかをテストするための一般的な方法はありますか?
python - GIL を含む Python VM とバージョンと含まない Python VM とバージョンはどれですか?
ここで、CPython 2.*、3.[01] が表示されます。および PyPy 1.4.1 にはすべて GIL があります。CPython 3.2 では GIL が改善されています。など...かなり包括的ですが、網羅的ではなく、少し古くなっているようです。そのページはこの情報に最適なリソースですか、それともより最新のページがどこかにありますか?
c++ - レンダリング エンジンが画像を小さな正方形に分割するのはなぜですか?
array
またはstd::vector
;で表されるイメージがメモリにあると想像してください。この例では、画像が 400x300 ピクセルのようなものであり、この構造を最大 64x64 ピクセルの正方形 (またはタイル) に分割したいとも想定しています。
私が検討している配列は、このように宣言されています
そして好きではない
これは、1 つの連続したメモリ チャンクです。
私が言いたいのは、データ構造とそのデータ構造へのアクセスを可能な限り線形に保つよう常に心がけているということです。イメージを正方形に分割するには、イメージがメモリ内でどのようにレイアウトされているかに応じて、1 つの行から別の行へ、または 1 つの列から別の列へジャンプする必要があります。画像のサイズと寸法が与えられた場合、正方形の境界を計算するのに問題はありませんが、このアプローチを使用することに実際の利点が見られずに、この正方形の反復を表現するときに少し複雑になりすぎます。
では、なぜこの種の細分化ステップに関する解決策がそれほど人気があるのでしょうか? 一度に1行または一度に1列のようにレンダリングしないのはなぜですか?