コンテンツにスキップ

ラジオの話題16:futexが94%。何の94%?

← ラジオの話題一覧 · 元の教材・詳しい解説

今日の話題:①割合の分母を探す → ②futexが見えたらmutex競合? → ③goroutineを増やせば速い?。

気になったところから自由に。順番や時間は決めず、話しやすい話題だけ拾って構いません。

話を広げるメモ

  • CPUを使った時間? 呼び出し開始から終了まで?
  • 複数threadの合算は、起動の経過時間と同じ?

小ネタ:straceの集計

-cは原則system CPU時間、-w併用では経過時間の集計。-Tは個別呼び出しの経過時間。版・オプション・出力列を確認し、元ノートの割合をそのまま起動時間の割合と言い換えない。

話の芯:数字を読む前に、何を測ったかを読む。

話を広げるメモ

  • ランタイムの同期にも待ちはある。
  • どのlockを、誰が持っている?

小ネタ:futex

ユーザー空間の同期を支えるkernelの待機・起床機能。待機時の値が期待と違えばEAGAINとなり得る。件数だけでアプリ障害や激しい競合を断定できない。

話の芯:待つ仕組みと、待たせた理由を分ける。

話を広げるメモ

  • goroutine数とOS thread数。
  • 並列度を下げると競合と処理能力はどう変わる?

小ネタ:GOMAXPROCS

同時にGoコードを実行できるCPU数を制限する設定で、総OS thread数の上限そのものではない。現行の既定値と当時の版の動作も分けて確認する。

話の芯:並行に存在する数と、並列に実行する数は違う。

「この話を、次に調査や設計をするときどう思い出したいか?」

既存の調査ケースにある技術補足から構成しました。当時の本人の発言・成果を再現した台本ではありません。思い出せる経験だけを本人の経験として話し、分からない経緯は補わずに使ってください。

定義の詳細・前提・一次資料・対象版・確認日は元の教材を参照してください。今回の作成では新しい実験・学習評価は行っていません。