以前、–max_old_space_sizeに大きな値を指定するとヒープサイズの表示がおかしいなー、もしかして4GB以上は指定できないのかなー、どうせそんな値指定しないからいっかー、とか思っていたのだが、表示のバグで6.10.1で修正されていた。
$ nvm use v6.10.0 Now using node v6.10.0 (npm v3.10.10) $ node --max_old_space_size=4096 > require('v8').getHeapStatistics() { total_heap_size: 7376896, total_heap_size_executable: 5242880, total_physical_size: 7376896, total_available_size: 22011840, used_heap_size: 3941224, heap_size_limit: 33554432 }
total_available_sizeが22MB、heap_size_limitが33MBしかないのだが、32bit intのオーバーフローで表示がバグっていたらしい。
$ nvm use v6.10.3 Now using node v6.10.3 (npm v3.10.10) $ node --max_old_space_size=4096 > require('v8').getHeapStatistics() { total_heap_size: 8425472, total_heap_size_executable: 5242880, total_physical_size: 8425472, total_available_size: 4316613496, used_heap_size: 3877496, heap_size_limit: 4328521728 }
今度は4GB以上の値になりました。