[過去ログ]
Go language part 4 (1002レス)
Go language part 4 http://mevius.5ch.net/test/read.cgi/tech/1605467680/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
957: デフォルトの名無しさん [sage] 2022/02/26(土) 13:27:19 ID:fRC8OZTs Goの(疑似スレッド+)goroutineのパフォーマンス計測っていいやつないの? ↓見つけたやつ Goroutines Are Not Significantly Smaller Than Threads https://matklad.github.io//2021/03/12/goroutines-are-not-significantly-smaller-than-threads.html http://mevius.5ch.net/test/read.cgi/tech/1605467680/957
962: デフォルトの名無しさん [sage] 2022/02/26(土) 16:17:55 ID:kpnhrKVl >>951 やってないのはやる必要がないから。 他言語も馬鹿ではないので、改善の努力はしてるし、いい点があったら平気でパクってる。 (Goはgreenthreadで全て解決!と謳っているわけではないけども、そうだとしたら) そのアイデアは面白かったが、現実的ではなかった。 (ただしこれはランタイムの問題だから改善の余地はあるはず) 非同期はコードがうざくなるのは事実だが、async文法でほぼ払拭された。 だからみんなパクってる。 まあ完全にループだし、材料枯渇でここら辺で終わりかな。 そりゃ信者の念仏を何度聞いても翻意する事はないよ。俺は文系ではないし。 こちらの見解では説明出来ないデータが出て来たら、分析して、考えを修正するけど。 >>957 virtualの40MBを単純に合算したら、今は4倍軽くて、4k/goroutine時代は2.5倍軽かったという事か。 フットプリントだけの比較ではあるが。 だから極めて単純に言えば、他言語のスレッドでジョブを4つずつ束ねて処理する運用をすれば、 フットプリントでは並んで、速度は余分なスケジューラが入ってない分勝てる事になる。 http://mevius.5ch.net/test/read.cgi/tech/1605467680/962
971: デフォルトの名無しさん [sage] 2022/02/26(土) 19:44:13.98 ID:fRC8OZTs 結局>>957よりいいパフォーマンス計測ってないのかー 個人的感想としては。。。 パフォーマンスについて特筆すべき利点はない 原理的にスレッドプールを使った他言語のコードと同程度の性能が出る 機能的な利点はグリーンスレッドを言語で持っており、自動でOSスレッドと使い分けられる点(記述量低&必要メモリ低) 逆に欠点はスケジュールをコントロールする方法がGOMAXPROCS以外ない点ってところかな http://mevius.5ch.net/test/read.cgi/tech/1605467680/971
1000: デフォルトの名無しさん [sage] 2022/02/27(日) 08:16:41.16 ID:+yReYAPt goroutineとC++標準ライブラリのスレッドを比較するために>>957のmain.rsのC++版だけ作ってみた(ループは一桁減らした) $ cat main.cc #include <thread> #include <chrono> #include <vector> using namespace std; using namespace std::chrono; int main() { vector<unique_ptr<thread>> threads; for (uint32_t i = 0; i < 1000; ++i) { threads.emplace_back( make_unique<thread>([=]{ uint64_t bad_hash = (i * 2654435761) % 200000; this_thread::sleep_for(microseconds(bad_hash)); for (uint32_t _ = 0; _ < 1000; ++_) { this_thread::sleep_for(10ms); } }) ); } for (auto const& t: threads) { t->join(); } return 0; } $ g++ -O3 -pthread main.cc -o main && ./t ./main real 11.04s user 0.93s sys 2.95s rss 11328k $ 結果はmain.rsとほぼ同じで、やはりスレッド起動コストがデカく、rssもデカい http://mevius.5ch.net/test/read.cgi/tech/1605467680/1000
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.187s*