Menjalankan ini:
perl -e '$a="x"x1000000000;sleep(10);print"done\n"'
membutuhkan RAM 1,8GB. Jadi Anda akan mengharapkan menjalankan ini:
perl -e '$a="x"x1000000000;fork;fork;fork;fork;sleep(10);print"done\n"'
akan memakan waktu 16 kali lipat. Tapi ternyata tidak.
Ini disebabkan oleh copy-on-write cerdas kernel Linux: Karena konten '$ a' tidak berubah, maka memori '$ a' dapat dibagikan. Tetapi itu hanya akan dibagikan sampai '$ a' diubah. Ketika itu terjadi, bagian yang diubah akan disalin dan mulai mengambil RAM.
Apakah Anda bisa mengukur berapa banyak memori yang dikomit copy-on-write, saya tidak tahu. Tapi setidaknya ini menjelaskan perhitungan Anda yang berlebihan.