2

Puma の READMEから:

MRI には、一度に 1 つのスレッドだけが Ruby コードを実行できるようにする Global VM Lock (GVL) があります。しかし、ブロッキング IO (Twitter などの外部 API への HTTP 呼び出しなど) を大量に実行している場合でも、Puma は IO 待機を並行して実行できるようにすることで、MRI のスループットを改善します。

残念ながら、MRI のスループットが向上するメカニズムは説明されていません。

システム IO を呼び出すときに MRI が GIL を解放することは知っていますが、それは Puma の代わりに MIR による改善です。

Puma がブロック IO の並列処理をどのように改善するのだろうか。

参考にしていただければ幸いです。

4

1 に答える 1