Hi
I am looking at the JVM configuration options for running Alfresco, mainly this document on the Alfresco Wiki. One of the recommendations is to use the JVM flags -Xcomp and -Xbatch. The justification of this is:
If you wish to have Hotspot precompile the classes, you can add [-Xcomp and -Xbatch]. This will, however, significantly increase the server startup time, but will highlight missing dependencies that can be hit later.
From what I have read elsewhere about the -Xcomp and -Xbatch flags, I am wondering whether they really provide any benefit.
-Xcompgets HotSpot to compile all code beforehand with maximum optimization, thus foregoing any profiling that the VM will get through the standard running of the system.-Xbatchstops background compiling, meaning the thread which caused the code to be compiled blocks until the compile is complete. However, after the compile is finished, the previously-blocked thread will not run the compiled code, it will still run the interpreted code. This was a change in Java 6 (Mustang) – before Mustang, threads blocked for compiling by the presence of the-Xbatchflag were guaranteed to run in the compiled code as soon as the compile was completed. Therefore, I am guessing that the recommendation of the-Xbatchflag is a relic of running Alfresco on older VMs.
Does anyone have any thoughts? My inclination is to get rid of these two flags and rely on the VM to get things right.
I would like to add two things, first of all that I don't yet have access to an Alfresco instance to test this on and secondly I don't really know what spec of machine is hosting Alfresco other than that by looking at the other configuration options it must be a 64 bit VM. Despite this, I hope the community will have some useful input, perhaps from a general HotSpot-tuning point of view.
Rich