問題タブ [go-scheduler]

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.

0 投票する
2 に答える
97 参照

go - time.Sleep があっても、このゴルーチンが実行されないのはなぜですか?

このコードを見てください:

最後にx等しいのはなぜですか?0Go のスケジューラーがtime.Sleep()ゴルーチンを取得するために呼び出しを必要とすることは理解していますが、なぜそうしないのでしょうか?

ヒント: for ループ内にatime.Sleep()または への呼び出しをruntime.Gosched()しかし、なぜ?

更新:同じコードの次のバージョンを確認してください。

奇妙なことに、ゴルーチン内のコードが実行され、x0 ではなくなりました。コンパイラはここで最適化を行いますか?

0 投票する
1 に答える
62 参照

go - ゴルーチンの平均待機時間の観察

多数の QPS を提供するサーバー アプリケーションを実行しており、クエリごとに、CPU の制約が大きい計算を実行しています。

トレースを取り、スクリーンショットを下に置きました。ここに画像の説明を入力 x 軸は時間、y 軸はゴルーチンの数です。濃い緑色は Running 状態のゴルーチンの数を示し、明るい青色は Runnable 状態のゴルーチンの数を示します。

このことから、同じゴルーチンがキューに入れられているのか、それとも何らかのコンテキスト スイッチが発生しているのかを知るのは困難です。
ゴルーチンの平均待機時間 (スケジュールされるまでの待機時間) を取得できるかどうかを知りたいです。