- 912 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 12:44:19.14 ID:PkL2tYJv.net]
- Goはアーキが良くない。中途半端なんだよ。Erlangを考えるなら、
Goはループを廃止して全部goroutineにし、基本map/reduceでmap側をgoroutineにし、 依存性のありなしだけを記述、つまり依存部分はチャネルで接続、 独立部分はgoroutineでランタイム内のスケジューラで状況を見て自動的にループに変更、 とかだと面白かったかもしれん。これなら脳死でひたすらgoroutineに切り出しで済むから。 実際はこれをやったらgoroutineが重すぎて余計に遅くなるから どの程度goroutineにするか「考えないと」いけないわけでさ。 (この顛末をモロに書いてたのが810で俺が探してたブログ(改めて探したけどやっぱり無いが)) ただ実態はGoランライムが(OSのスケジューラと同様に) チャネル、スタック、エントリ関数ポインタを持つGoroutine型のオブジェクトを大量に用意して イベントドリブンで動かしているだけだから、チャネルとスタックの『衣』の部分だけどうしても重くなる。 だから普通に他言語でイベントドリブンで書かれたら絶対にその分負けるわけで、この辺もアーキの良くない部分だよ。 「最速を目指す気はない!」ってのが答えなんだろうけどさ。 ただ、簡単に書ける割には速いってのならJS/TSになってしまうし。
|

|