Adakah yang bisa menjelaskan kepada saya mengapa JVM (saya tidak memeriksa terlalu banyak, tetapi saya belum pernah melihat yang tidak melakukannya dengan cara seperti itu) perlu dijalankan pada ukuran heap yang tetap? Saya tahu ini lebih mudah untuk diterapkan pada tumpukan berdekatan yang sederhana, tetapi Sun JVM sekarang berusia lebih dari satu dekade, jadi saya berharap mereka memiliki waktu untuk meningkatkan ini.
Perlu untuk menentukan ukuran memori maksimum dari program Anda pada waktu startup tampaknya merupakan hal yang harus dilakukan pada tahun 1960-an, dan kemudian ada interaksi yang buruk dengan manajemen memori virtual OS (pengambilan data yang bertukar dengan GC, ketidakmampuan untuk menentukan berapa banyak memori pada proses Java adalah benar - benar menggunakan dari sisi OS, sejumlah besar ruang VM terbuang (saya tahu, Anda tidak peduli pada mesin 48bit mewah Anda ...)). Saya juga menebak bahwa berbagai upaya menyedihkan untuk membangun sistem operasi kecil di dalam JVM (server aplikasi EE, OSGi) setidaknya sebagian untuk menyalahkan keadaan ini, karena menjalankan beberapa proses Java pada sistem selalu mengarah pada sumber daya yang terbuang karena Anda harus berikan masing-masing memori yang mungkin harus digunakan di puncak.
Anehnya, Google tidak menghasilkan badai kemarahan atas ini yang saya harapkan, tetapi mereka mungkin telah terkubur di bawah jutaan orang yang mencari tahu tentang ukuran tumpukan tetap dan hanya menerimanya sebagai fakta.