[過去ログ] Qiita 3 - キータぞ、来たぞ、キータだぞー (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
758(4): デフォルトの名無しさん [sage] 2023/12/14(木) 13:17:27.28 ID:4gudT7IY(1) AAS
>>756756(1): デフォルトの名無しさん [sage] 2023/12/14(木) 11:27:56.68 ID:ehr7WTWM(3/3) AAS
>>750
現在の何万接続も同時に捌く最新型の各種サーバーはそのように作られている
ネットワークデバイスやその通信データに対してそれ以外の方法で作るとCPUは暇で遊んでしまうため
>>751
マルチプロセスにするメリットはないため1つのプロセス内でマルチスレッドを使う
CPUコアスレッド数よりも多くのスレッドを動かすのは無駄にスレッドスイッチングが発生し不利となるため限定した数のスレッドを動かしている
そのCPUコアスレッド数分のマルチスレッド上で数万個の軽い非同期タスクを動かすことでCPUの待ち時間を可能な限り無くしている
それだと10万のプロセスが扱える利点なくね?w
759(1): デフォルトの名無しさん [sage] 2023/12/14(木) 13:32:55.03 ID:4sl/SGKe(1) AAS
>>758
プロセスではなくマルチスレッド上に何万もの非同期タスクを動かしてるんだよ
Rustならスタックレスなコルーチンで実現されていてGoならスタック付きgoroutine
763(1): デフォルトの名無しさん [sage] 2023/12/14(木) 14:41:05.58 ID:2Ni4Gd+R(1/2) AAS
>>758
プロセスはスイッチングコストが非常に大きいため、
プロセスを動かせば動かすほど損をするという基本常識を理解しよう。
そのためメモリを共有しスイッチングコストが軽減されたスレッドが代わりにある。
そのスレッドもスイッチングコストが大きいため、
1スレッド1クライアント接続だと何万もクライアントが同時接続したら動かない。
よってスイッチングコストが極めて軽量で非同期に動くマイクロタスクを用いるのが主流となっている。
766: デフォルトの名無しさん [sage] 2023/12/14(木) 15:05:17.25 ID:+fN+qS2C(1) AAS
10万のプロセスと書き込んでいるアホは>>744744(2): デフォルトの名無しさん [sage] 2023/12/14(木) 07:29:56.59 ID:y0v8WBQQ(1/6) AAS
10万のプロセス作ったとしてもCPUが10万無いなら結局同時処理できないわけで意味ないんじゃね
あとプロセス作る負荷と切り替えの負荷は結構重い
PCで使う限り大量のプロセス作っても速くなるどころか逆に遅くなると思うんだがほんとに速さが売りになるのか?
と>>758
769(1): デフォルトの名無しさん [sage] 2023/12/14(木) 16:13:09.80 ID:xxh+LIL0(1) AAS
>>758
>>76410万個動くのは
Goならgoroutine
Rustならtask
Elixirならlightweight process
OSのプロセスの話なんて誰もしていないことに気づかなきゃ
そのへんの今どきの言語どれかをかじったことがあるならすぐわかるでしょ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.570s*