メモリが 1G しかない場合、次に何が起こるでしょうか。たとえば、PHP がクラッシュするでしょうか。
node.js の場合、単一プロセスのメモリ制限は 1G です。また何が起こるのですか、崩壊しますか?
<code class="language-js"><span class="nx">http</span><span class="p">.</span><span class="nx">createServer</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">req</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">fd</span> <span class="o">=</span> <span class="nx">fs</span><span class="p">.</span><span class="nx">openSync</span><span class="p">(</span><span class="s1">'/tmp/'</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">(),</span> <span class="s1">'w+'</span><span class="p">);</span>
<span class="nx">req</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'data'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">chunk</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">fs</span><span class="p">.</span><span class="nx">writeSync</span><span class="p">(</span><span class="nx">fd</span><span class="p">,</span> <span class="nx">chunk</span><span class="p">);</span>
<span class="p">});</span>
<span class="nx">req</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">'end'</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
<span class="nx">callbackWithRequestBody</span><span class="p">(</span><span class="nx">fd</span><span class="p">);</span>
<span class="nx">res</span><span class="p">.</span><span class="nx">end</span><span class="p">();</span>
<span class="p">});</span>
<span class="p">});</span>
</code>
また、nodejs のバッファメモリは別途計算されるようで、このような大きなファイルのアップロードは通常、読み書きし放題で、メモリ使用量も高くありません。
ストリーミング処理を使用して、ゆっくりと読み書きするだけで、ノードサーバー自体が取得可能なストリームを実装できます