[過去ログ]
Go language part 5 (1002レス)
Go language part 5 http://mevius.5ch.net/test/read.cgi/tech/1645915400/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
35: デフォルトの名無しさん [sage] 2022/02/28(月) 21:21:31.32 ID:BEDnUIJv >>23 いや、元記事もそこはちょっと間違ってる。 とはいえ本質は「RSSで全部計上されてるか?」なので大筋は問題ないが。 RSSは「ユーザープロセス空間で、メモリ上に配置されてる物」なので、元記事の通り、スワップされてれば計上されないが、 そもそもこの計測方法では普通はスワップされない。 ただ、考慮してるのは"Thread bookkeeping"であって、 kernel(OS)がこれに使うメモリがRSSに計上されてないから問題だ、というのはあってる。 だから俺はそれを足してる。 Goでは、実はこの部分も売りにしてて、以下は8の2つ目だが > https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast > The switch between goroutines only happens at well defined points, when an explicit call is made to the Go runtime scheduler. > The compiler knows the registers which are in use and saves them automatically. むやみにプリエンプトせず、スイッチングポイントを考えて、必要ないレジスタは待避してない。 考えられるのは ・そもそもセグメントレジスタなんて普通は使わないから待避する必要がない。(レガシー) ・関数の途中でプリエンプトせず、関数呼び出し単位でスイッチなら、 呼び出し規約上の破壊レジスタ(a,b,c,d)は待避する必要がない。 ・そのgoroutineの処理にSSE命令が存在しなければ、SSE系レジスタを待避する必要がない。FPU(x87)も同様。 とかになる。 (なおこれを突き詰めたらRustの「コルーチンのyieldでスイッチすれば、スタックも要らん」になる) そして現実的に多くの場合SSE系命令は不要で、必要待避領域は多分半分以下にはなるので、(面倒だから数えてないが) Goは半分以下にする努力してるのにRSSだと計上され、OS任せだと丸々必要なのにRSSには計上されないので、 当然の如く突っ込まれる事になる。 (その他細かいフラグ類は沢山あるだろうけど、多くはbit単位であり容量としてはゴミなので無視) だから最小フットプリントなら1/3程度で、 あまり余計なことしなければスイッチングコストも1/3程度としていいのではないかと。 逆に言えば、threadよりも3倍程度のgoroutineで済むのなら、速くてコードも綺麗だが、 それ以上なら遅くなるという事。 http://mevius.5ch.net/test/read.cgi/tech/1645915400/35
37: デフォルトの名無しさん [sage] 2022/02/28(月) 22:40:05.81 ID:EeqSDih1 >>35 元記事はGoのバージョンが確認できず、goroutine当たりのスタックサイズは不明なため、断定してないだけで、時期を考えると2KBだから恐らくRSSだろうとは思っている(明確に言えるのは自分で計測した方だけ)。 カーネルで管理されているメモリは4KB/2KBとかじゃないと思うし、数字としてはどこにも表れないので、それは差があるとだけしておけばいい。 元記事の筆者が加算しているのはgoroutineスタック分以外は全てRSSに入る前提の元、未計測の仮想メモリには最大40MB入ることがあるはずという計算。 > Goでは、実はこの部分も売りにしてて、以下は8の2つ目だが...コルーチンのyieldでスイッチ... Goの「スイッチングポイント」は現状誰も明示しておらず、保存しているものも、どこなのかも、推測の範疇を出ておらず、議論は無意味。 http://mevius.5ch.net/test/read.cgi/tech/1645915400/37
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s