A change in the default choice of NewSize w/CMS has revealed an
existing day-one bug that can cause a start-up error w/small
initial heap settings:
% $ALT_BOOTDIR/bin/java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Server VM (build 1.5.0-b64, mixed mode)
% $ALT_BOOTDIR/bin/java -server -Xms4m -Xmx128m -XX:+UseConcMarkSweepGC -version
Error occurred during initialization of VM
Too small initial heap for new size specified
% $ALT_BOOTDIR/bin/java -server -Xms4m -XX:NewSize=2m -Xmx128m -XX:+UseConcMarkSweepGC -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Server VM (build 1.5.0-b64, mixed mode)
This becomes somewhat worse with 6.0 where the default settings were changed
to use a larger default NewSize:
% $BOOTDIR/bin/java -version
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b97)
Java HotSpot(TM) Server VM (build 1.6.0-rc-b97, mixed mode)
% $BOOTDIR/bin/java -server -Xms16m -Xmx128m -XX:+UseConcMarkSweepGC -version
Error occurred during initialization of VM
Too small initial heap for new size specified
% $BOOTDIR/bin/java -server -Xms16m -XX:NewSize=8m -Xmx128m -XX:+UseConcMarkSweepGC -version
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b97)
Java HotSpot(TM) Server VM (build 1.6.0-rc-b97, mixed mode)
% $BOOTDIR/bin/java -server -Xms18m -XX:+UseConcMarkSweepGC -version
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b97)
Java HotSpot(TM) Server VM (build 1.6.0-rc-b97, mixed mode)