java time slice duration performance
satya - Thursday, December 28, 2006 10:34:21 AM
Understand the resolution of System.CurrentTimemillisecs
satya - Thursday, December 28, 2006 10:34:55 AM
On windows this resolution seem to be 10ms from the above article
On windows this resolution seem to be 10ms from the above article
satya - Thursday, December 28, 2006 2:43:25 PM
More commentary on timing through System.currentTimeMillis()
More commentary on timing through System.currentTimeMillis()
satya - Thursday, December 28, 2006 2:45:32 PM
According to this the resolutions are
windows 95: 55 msec NT, xp single processor: 10 msec xp dual processor: 16 msec
satya - Thursday, December 28, 2006 2:48:03 PM
Another important note on calendar
satya - Thursday, December 28, 2006 3:19:18 PM
A nice primer on scheduler
satya - Thursday, December 28, 2006 3:21:05 PM
For instance it says ..
Linux wants the time slice to be around 50 msec decreased from 200 ms in earlier versions. These are called scheduling quanta
satya - Thursday, December 28, 2006 3:22:22 PM
An epoch..
The total time all runnable processes comes to conclusion runnign once. A new epoch starts right after.
satya - Thursday, December 28, 2006 3:24:34 PM
windows scheduler differs from linux..
windows scheduler differs from linux..
satya - Thursday, December 28, 2006 3:24:54 PM
windows quanta is 6 ticks or 60 ms
windows quanta is 6 ticks or 60 ms
satya - Thursday, December 28, 2006 3:25:27 PM
windows server is 36 ticks or 360 msecs
windows server is 36 ticks or 360 msecs
satya - Thursday, December 28, 2006 3:26:50 PM
See this ...the 10 and 15 msec connection
The clock interval for most x86 uniprocessors is 10ms, and for most x86 multiprocessors, 15ms.
satya - Thursday, December 28, 2006 3:51:21 PM
Tuning java guidelines from sun
satya - Thursday, December 28, 2006 3:58:51 PM
5.0 performance white paper
satya - Friday, December 29, 2006 8:08:53 AM
StringBuilder was introduced in jdk 1.5
To replace stringbuffer for not needing threadsafe environments.
satya - Friday, December 29, 2006 8:09:07 AM
Reflection in jdk 1.4 is much improved
Reflection in jdk 1.4 is much improved
satya - Friday, December 29, 2006 8:09:36 AM
See what is ergonomics
See what is ergonomics
satya - Friday, December 29, 2006 8:19:13 AM
Ergonomics...
The ability of a jvm to tune itself
satya - Friday, December 29, 2006 8:19:38 AM
How is server class defined
At least 2 cpus and 2GB of memory
satya - Friday, December 29, 2006 8:19:57 AM
All windows 32 bit machines are classified as clients
All windows 32 bit machines are classified as clients
satya - Friday, December 29, 2006 8:21:42 AM
Default server class settings
-server compiler -XX:+UseParallelGC -Xms initial heap 1/64th of the physical memory -Xmx maximum 1/4 the machines physical memory to a max of 1GB
satya - Friday, December 29, 2006 8:22:19 AM
For a 32 bit box the maximum virtual memory is 4GB
For a 32 bit box the maximum virtual memory is 4GB
satya - Friday, December 29, 2006 8:24:27 AM
The sum of java heaps should not exceed the physical RAM to avoid paging
The sum of java heaps should not exceed the physical RAM to avoid paging
satya - Friday, December 29, 2006 8:46:42 AM
Understand hotpot vm better. The home page
satya - Friday, December 29, 2006 9:15:42 AM
Recommendation as of now
There is a ton of material to read and go through for a good set of recommendations. But for now based on what I know this is what I will do:
1. Analyze and Eliminate any application delays
2. Use jdk 1.5 and the latest update
3. Download and install the proper hotspot compiler for server
4. Set the options as laid out in tuning options 4.2.6 of the tuning white paper above .
satya - Friday, December 29, 2006 9:18:00 AM
Briefly the options for "low pause times and high throughput" read..
-Xmx3500m -Xms3500m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UsePareNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRation=90 -XX:MaxTenuringThreshold=31 -server
satya - Friday, December 29, 2006 9:20:29 AM
To be done
1. How to monitor how much memory is being used
2. what are the tools available to monitor a running jvm?