- 203 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 00:48:28.58 ID:LJe505L1.net]
- >>197
いや、go routineと本物のthread(javaも同じ)で比較するとその通りだと思う。 過去のwebフレームワークが1要求を愚直に1スレッドに割当てして性能限界に至ったのも真実。 だからgo routineを使えば、同じく1要求を愚直に1 go routineに割当したとしてもgo 内部で複数のgo routineを1つのスレッドに割当する事で極力性能、メモリ使用量を抑える事が出来ますって事だけ何だよな。 そして、スレッドのコストが高いってのはある意味常識で、スレッドは最低限に抑えましょうてのは昔から常識。方法としては、古典的なメッセージループ、スレッドプール、ファイバー、タスク、async構文、nodeの全シングルスレッドとあらゆる方法がある中の一つがgo routine。 中身は、まあ他の手法から抜きん出て便利なのか否かは歴史がこれから証明する所。 apacheが歴史的に1要求1プロセスのforkベースだったから、webはプロセスから見たらスレッドの方が軽量って事で性能面は見過ごされて来た歴史がある。組込みシステムはリソース命だからかなり初期からスレッドの高コストはしっかり意識してモノ作りしている。
|

|