[過去ログ] Go language part 4 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
957(3): デフォルトの名無しさん [sage] 2022/02/26(土) 13:27:19 ID:fRC8OZTs(1/2) AAS
Goの(疑似スレッド+)goroutineのパフォーマンス計測っていいやつないの?
↓見つけたやつ
Goroutines Are Not Significantly Smaller Than Threads
外部リンク[html]:matklad.github.io
962(1): デフォルトの名無しさん [sage] 2022/02/26(土) 16:17:55 ID:kpnhrKVl(6/10) AAS
>>951951(2): デフォルトの名無しさん [sage] 2022/02/26(土) 12:15:41 ID:pDCyYMqI(1/2) AAS
>>949
N:Mのグリーンスレッドであって単なるマルチスレッドじゃない。
単に引っかかったら切り替えるんでなくてスティーリングまでやるのは他の言語の言語標準機能にはErlangぐらいにしかない。
どこが嘘なんよ。
コストゼロでは無いが、いわゆるスレッドよりは遥かに軽いぞ。
やってないのはやる必要がないから。
他言語も馬鹿ではないので、改善の努力はしてるし、いい点があったら平気でパクってる。
(Goはgreenthreadで全て解決!と謳っているわけではないけども、そうだとしたら)
そのアイデアは面白かったが、現実的ではなかった。
(ただしこれはランタイムの問題だから改善の余地はあるはず)
非同期はコードがうざくなるのは事実だが、async文法でほぼ払拭された。
だからみんなパクってる。
まあ完全にループだし、材料枯渇でここら辺で終わりかな。
そりゃ信者の念仏を何度聞いても翻意する事はないよ。俺は文系ではないし。
こちらの見解では説明出来ないデータが出て来たら、分析して、考えを修正するけど。
>>957
virtualの40MBを単純に合算したら、今は4倍軽くて、4k/goroutine時代は2.5倍軽かったという事か。
フットプリントだけの比較ではあるが。
だから極めて単純に言えば、他言語のスレッドでジョブを4つずつ束ねて処理する運用をすれば、
フットプリントでは並んで、速度は余分なスケジューラが入ってない分勝てる事になる。
971(1): デフォルトの名無しさん [sage] 2022/02/26(土) 19:44:13.98 ID:fRC8OZTs(2/2) AAS
結局>>957よりいいパフォーマンス計測ってないのかー
個人的感想としては。。。
パフォーマンスについて特筆すべき利点はない
原理的にスレッドプールを使った他言語のコードと同程度の性能が出る
機能的な利点はグリーンスレッドを言語で持っており、自動でOSスレッドと使い分けられる点(記述量低&必要メモリ低)
逆に欠点はスケジュールをコントロールする方法がGOMAXPROCS以外ない点ってところかな
1000: デフォルトの名無しさん [sage] 2022/02/27(日) 08:16:41.16 ID:+yReYAPt(2/2) AAS
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もデカい
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.170s*