java time slice duration performance

satya - Thursday, December 28, 2006 10:34:21 AM

Understand the resolution of System.CurrentTimemillisecs

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

Another important note on calendar

satya - Thursday, December 28, 2006 3:19:18 PM

A nice primer on scheduler

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

Tuning java guidelines from sun

satya - Thursday, December 28, 2006 3:58:51 PM

5.0 performance white paper

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

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?