- 736 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 14:01:08.94 ID:UANz5iul0.net]
- >>686
なるほどお前が全然分かって無いというのは分かった。 根本的に勘違いしていると思うのだけど、ジョブの中身を同期専用/非同期専用で設計することはない。(というか、できない?) 既に言ったが、MatrixMul、要は行列の掛け算が100ジョブあったら、4CPUならそれを4個ずつ積むだけだ。 このとき吐けた順にガンガン積んで処理していきたいなら、 「非同期」にして最初から全部キューイングしてディスパッチャに任せるだけ。 ジョブ自体が「非同期」ではなく、ジョブの処理の仕方が「非同期」なんだよ。 MatrixMulを非同期専用に書き換える、なんて事はない。というか、出来ない。 > 例えば、ネットワークやファイルなどIOバウンドな処理は、CPUとは異なるデバイスで処理されるので、原理的に非同期にするしかない これもない。というか、C#にしても、他の言語にしても、ファイルオープンは通常は同期だ。 ここはJavaScriptのスレではないのだが、それを間違えたか? これについては「JavaScript 10k (またはc10k)」でググってくれた方がいいと思う。 Sleepがない方がパフォーマンスが出る!というのがJavaScriptの宗教だから、蕩々と説明してあるはず。 ただしJavaScriptもメジャーになってしまったし、おそらく以前ほど叩かれなくもなっているので、最近はこの話題も聞かないが。 I/Oを非同期として分離する必要があるのは、JavaScriptがSleep無しのシングルスレッドアーキテクチャだからであって、 Sleepありのマルチスレッドアーキテクチャならその必要はないし、C#含めて通常の言語は全部これだよ。
|

|