-

The most complete list of -XX options for Java 6 JVM

Posted by David on Mar 11, 2012 in Java

原文地址 http://stas-blogspot.blogspot.com/2011/07/most-complete-list-of-xx-options-for.html

由于blogspot.com被墙了,我copy了一份,便于查找。

————————————————————————————-

The most complete list of -XX options for Java 6 JVM
There was a wonderful page with that list (http://www.md.pp.ru/~eu/jdk6options.html), but it seems it’s gone now and not available any more. Luckily there is http://web.archive.org which allows to make time flowing backwards and recover things which have passed away long time back. So, I have just get that page out of grave and copy/pasted here to return that bit of information back to life.

product flags are always settable / visible
develop flags are settable / visible only during development and are constant in the PRODUCT version
notproduct flags are settable / visible only during development and are not declared in the PRODUCT version
diagnostic options not meant for VM tuning or for product modes. They are to be used for VM quality assurance or field diagnosis of VM bugs. They are hidden so that users will not be encouraged to try them as if they were VM ordinary execution options. However, they are available in the product version of the VM. Under instruction from support engineers, VM customers can turn them on to collect diagnostic information about VM problems. To use a VM diagnostic option, you must first specify +UnlockDiagnosticVMOptions. (This master switch also affects the behavior of -Xprintflags.)
manageable flags are writeable external product flags. They are dynamically writeable through the JDK management interface (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole. These flags are external exported interface (see CCC). The list of manageable flags can be queried programmatically through the management interface.
experimental experimental options which become available just after XX:+UnlockExperimentalVMOptions flag is set.
product_rw flags are writeable internal product flags. They are like “manageable” flags but for internal/private use. The list of product_rw flags are internal/private flags which may be changed/removed in a future release. It can be set through the management interface to get/set value when the name of flag is supplied.
product_pd
develop_pd
Name Description Default Type
product
UseMembar (Unstable) Issues membars on thread state transitions false bool
PrintCommandLineFlags Prints flags that appeared on the command line false bool
JavaMonitorsInStackTrace Print info. about Java monitor locks when the stacks are dumped true bool
LargePageSizeInBytes Large page size (0 to let VM choose the page size 0 uintx
LargePageHeapSizeThreshold Use large pages if max heap is at least this big 128*M uintx
ForceTimeHighResolution Using high time resolution(For Win32 only) false bool
PrintVMQWaitTime Prints out the waiting time in VM operation queue false bool
PrintJNIResolving Used to implement -v:jni false bool
UseInlineCaches Use Inline Caches for virtual calls true bool
UseCompilerSafepoints Stop at safepoints in compiled code true bool
UseSplitVerifier use split verifier with StackMapTable attributes true bool
FailOverToOldVerifier fail over to old verifier when split verifier fails true bool
SuspendRetryCount Maximum retry count for an external suspend request 50 intx
SuspendRetryDelay Milliseconds to delay per retry (* current_retry_count) 5 intx
UseSuspendResumeThreadLists Enable SuspendThreadList and ResumeThreadList true bool
MaxFDLimit Bump the number of file descriptors to max in solaris. true bool
BytecodeVerificationRemote Enables the Java bytecode verifier for remote classes true bool
BytecodeVerificationLocal Enables the Java bytecode verifier for local classes false bool
PrintGCApplicationConcurrentTime Print the time the application has been running false bool
PrintGCApplicationStoppedTime Print the time the application has been stopped false bool
ShowMessageBoxOnError Keep process alive on VM fatal error false bool
SuppressFatalErrorMessage Do NO Fatal Error report [Avoid deadlock] false bool
OnError Run user-defined commands on fatal error; see VMError.cpp for examples “” ccstr
OnOutOfMemoryError Run user-defined commands on first java.lang.OutOfMemoryError “” ccstr
PrintCompilation Print compilations false bool
StackTraceInThrowable Collect backtrace in throwable when exception happens true bool
OmitStackTraceInFastThrow Omit backtraces for some ‘hot’ exceptions in optimized code true bool
ProfilerPrintByteCodeStatistics Prints byte code statictics when dumping profiler output false bool
ProfilerRecordPC Collects tick for each 16 byte interval of compiled code false bool
UseNUMA Enables NUMA support. See details here false bool
ProfileVM Profiles ticks that fall within VM (either in the VM Thread or VM code called through stubs) false bool
ProfileIntervals Prints profiles for each interval (see ProfileIntervalsTicks) false bool
RegisterFinalizersAtInit Register finalizable objects at end of Object. or after allocation. true bool
ClassUnloading Do unloading of classes true bool
ConvertYieldToSleep Converts yield to a sleep of MinSleepInterval to simulate Win32 behavior (SOLARIS only) false bool
UseBoundThreads Bind user level threads to kernel threads (for SOLARIS only) true bool
UseLWPSynchronization Use LWP-based instead of libthread-based synchronization (SPARC only) true bool
SyncKnobs (Unstable) Various monitor synchronization tunables “” ccstr
EmitSync (Unsafe,Unstable) Controls emission of inline sync fast-path code 0 intx
AlwaysInflate (Unstable) Force inflation 0 intx
Atomics (Unsafe,Unstable) Diagnostic – Controls emission of atomics 0 intx
EmitLFence (Unsafe,Unstable) Experimental 0 intx
AppendRatio (Unstable) Monitor queue fairness” ) product(intx, SyncFlags, 0,(Unsafe,Unstable) Experimental Sync flags” ) product(intx, SyncVerbose, 0,(Unstable)” ) product(intx, ClearFPUAtPark, 0,(Unsafe,Unstable)” ) product(intx, hashCode, 0, (Unstable) select hashCode generation algorithm” ) product(intx, WorkAroundNPTLTimedWaitHang, 1, (Unstable, Linux-specific)” avoid NPTL-FUTEX hang pthread_cond_timedwait” ) product(bool, FilterSpuriousWakeups , true, Prevent spurious or premature wakeups from object.wait” (Solaris only) 11 intx
AdjustConcurrency call thr_setconcurrency at thread create time to avoid LWP starvation on MP systems (For Solaris Only) false bool
ReduceSignalUsage Reduce the use of OS signals in Java and/or the VM false bool
AllowUserSignalHandlers Do not complain if the application installs signal handlers (Solaris & Linux only) false bool
UseSignalChaining Use signal-chaining to invoke signal handlers installed by the application (Solaris & Linux only) true bool
UseAltSigs Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM internal signals. (Solaris only) false bool
UseSpinning Use spinning in monitor inflation and before entry false bool
PreSpinYield Yield before inner spinning loop false bool
PostSpinYield Yield after inner spinning loop true bool
AllowJNIEnvProxy Allow JNIEnv proxies for jdbx false bool
JNIDetachReleasesMonitors JNI DetachCurrentThread releases monitors owned by thread true bool
RestoreMXCSROnJNICalls Restore MXCSR when returning from JNI calls false bool
CheckJNICalls Verify all arguments to JNI calls false bool
UseFastJNIAccessors Use optimized versions of GetField true bool
EagerXrunInit Eagerly initialize -Xrun libraries; allows startup profiling, but not all -Xrun libraries may support the state of the VM at this time false bool
PreserveAllAnnotations Preserve RuntimeInvisibleAnnotations as well as RuntimeVisibleAnnotations false bool
LazyBootClassLoader Enable/disable lazy opening of boot class path entries true bool
UseBiasedLocking Enable biased locking in JVM true bool
BiasedLockingStartupDelay Number of milliseconds to wait before enabling biased locking 4000 intx
BiasedLockingBulkRebiasThreshold Threshold of number of revocations per type to try to rebias all objects in the heap of that type 20 intx
BiasedLockingBulkRevokeThreshold Threshold of number of revocations per type to permanently revoke biases of all objects in the heap of that type 40 intx
BiasedLockingDecayTime Decay time (in milliseconds) to re-enable bulk rebiasing of a type after previous bulk rebias 25000 intx
TraceJVMTI Trace flags for JVMTI functions and events “” ccstr
StressLdcRewrite Force ldc -> ldc_w rewrite during RedefineClasses false bool
TraceRedefineClasses Trace level for JVMTI RedefineClasses 0 intx
VerifyMergedCPBytecodes Verify bytecodes after RedefineClasses constant pool merging true bool
HPILibPath Specify alternate path to HPI library “” ccstr
TraceClassResolution Trace all constant pool resolutions (for debugging) false bool
TraceBiasedLocking Trace biased locking in JVM false bool
TraceMonitorInflation Trace monitor inflation in JVM false bool
Use486InstrsOnly Use 80486 Compliant instruction subset false bool
UseSerialGC Tells whether the VM should use serial garbage collector false bool
UseParallelGC Use the Parallel Scavenge garbage collector false bool
UseParallelOldGC Use the Parallel Old garbage collector false bool
UseParallelOldGCCompacting In the Parallel Old garbage collector use parallel compaction true bool
UseParallelDensePrefixUpdate In the Parallel Old garbage collector use parallel dense” prefix update true bool
HeapMaximumCompactionInterval How often should we maximally compact the heap (not allowing any dead space) 20 uintx
HeapFirstMaximumCompactionCount The collection count for the first maximum compaction 3 uintx
UseMaximumCompactionOnSystemGC In the Parallel Old garbage collector maximum compaction for a system GC true bool
ParallelOldDeadWoodLimiterMean The mean used by the par compact dead wood” limiter (a number between 0-100). 50 uintx
ParallelOldDeadWoodLimiterStdDev The standard deviation used by the par compact dead wood” limiter (a number between 0-100). 80 uintx
UseParallelOldGCDensePrefix Use a dense prefix with the Parallel Old garbage collector true bool
ParallelGCThreads Number of parallel threads parallel gc will use 0 uintx
ParallelCMSThreads Max number of threads CMS will use for concurrent work 0 uintx
YoungPLABSize Size of young gen promotion labs (in HeapWords) 4096 uintx
OldPLABSize Size of old gen promotion labs (in HeapWords). See good explanation about that parameter here. 1024 uintx
GCTaskTimeStampEntries Number of time stamp entries per gc worker thread 200 uintx
AlwaysTenure Always tenure objects in eden. (ParallelGC only) false bool
NeverTenure Never tenure objects in eden, May tenure on overflow” (ParallelGC only) false bool
ScavengeBeforeFullGC Scavenge youngest generation before each full GC,” used with UseParallelGC true bool
UseCompressedOops Enables object-reference compression capabilities via the Compressed References. Have sense just on 64bit JVM. See more details here. false bool
UseConcMarkSweepGC Use Concurrent Mark-Sweep GC in the old generation false bool
ExplicitGCInvokesConcurrent A System.gc() request invokes a concurrent collection;” (effective only when UseConcMarkSweepGC) false bool
UseCMSBestFit Use CMS best fit allocation strategy true bool
UseCMSCollectionPassing Use passing of collection from background to foreground true bool
UseParNewGC Use parallel threads in the new generation. false bool
ParallelGCVerbose Verbose output for parallel GC. false bool
ParallelGCBufferWastePct wasted fraction of parallel allocation buffer. 10 intx
ParallelGCRetainPLAB Retain parallel allocation buffers across scavenges. true bool
TargetPLABWastePct target wasted space in last buffer as pct of overall allocation 10 intx
PLABWeight Percentage (0-100) used to weight the current sample when” computing exponentially decaying average for ResizePLAB. 75 uintx
ResizePLAB Dynamically resize (survivor space) promotion labs true bool
PrintPLAB Print (survivor space) promotion labs sizing decisions false bool
ParGCArrayScanChunk Scan a subset and push remainder, if array is bigger than this 50 intx
ParGCDesiredObjsFromOverflowList The desired number of objects to claim from the overflow list 20 intx
CMSParPromoteBlocksToClaim Number of blocks to attempt to claim when refilling CMS LAB for parallel GC. 50 uintx
AlwaysPreTouch It forces all freshly committed pages to be pre-touched. false bool
CMSUseOldDefaults A flag temporarily introduced to allow reverting to some older” default settings; older as of 6.0 false bool
CMSYoungGenPerWorker The amount of young gen chosen by default per GC worker thread available 16*M intx
CMSIncrementalMode Whether CMS GC should operate in \”incremental\” mode false bool
CMSIncrementalDutyCycle CMS incremental mode duty cycle (a percentage, 0-100). If” CMSIncrementalPacing is enabled, then this is just the initial” value 10 uintx
CMSIncrementalPacing Whether the CMS incremental mode duty cycle should be automatically adjusted true bool
CMSIncrementalDutyCycleMin Lower bound on the duty cycle when CMSIncrementalPacing is” enabled (a percentage, 0-100). 0 uintx
CMSIncrementalSafetyFactor Percentage (0-100) used to add conservatism when computing the” duty cycle. 10 uintx
CMSIncrementalOffset Percentage (0-100) by which the CMS incremental mode duty cycle” is shifted to the right within the period between young GCs 0 uintx
CMSExpAvgFactor Percentage (0-100) used to weight the current sample when” computing exponential averages for CMS statistics. 25 uintx
CMS_FLSWeight Percentage (0-100) used to weight the current sample when” computing exponentially decating averages for CMS FLS statistics. 50 uintx
CMS_FLSPadding The multiple of deviation from mean to use for buffering” against volatility in free list demand. 2 uintx
FLSCoalescePolicy CMS: Aggression level for coalescing, increasing from 0 to 4 2 uintx
CMS_SweepWeight Percentage (0-100) used to weight the current sample when” computing exponentially decaying average for inter-sweep duration. 50 uintx
CMS_SweepPadding The multiple of deviation from mean to use for buffering” against volatility in inter-sweep duration. 2 uintx
CMS_SweepTimerThresholdMillis Skip block flux-rate sampling for an epoch unless inter-sweep duration exceeds this threhold in milliseconds 10 uintx
CMSClassUnloadingEnabled Whether class unloading enabled when using CMS GC false bool
CMSCompactWhenClearAllSoftRefs Compact when asked to collect CMS gen with clear_all_soft_refs true bool
UseCMSCompactAtFullCollection Use mark sweep compact at full collections true bool
CMSFullGCsBeforeCompaction Number of CMS full collection done before compaction if > 0 0 uintx
CMSIndexedFreeListReplenish Replenish and indexed free list with this number of chunks 4 uintx
CMSLoopWarn Warn in case of excessive CMS looping false bool
CMSMarkStackSize Size of CMS marking stack 32*K uintx
CMSMarkStackSizeMax Max size of CMS marking stack 4*M uintx
CMSMaxAbortablePrecleanLoops (Temporary, subject to experimentation)” Maximum number of abortable preclean iterations, if > 0 0 uintx
CMSMaxAbortablePrecleanTime (Temporary, subject to experimentation)” Maximum time in abortable preclean in ms 5000 intx
CMSAbortablePrecleanMinWorkPerIteration (Temporary, subject to experimentation)” Nominal minimum work per abortable preclean iteration 100 uintx
CMSAbortablePrecleanWaitMillis (Temporary, subject to experimentation)” Time that we sleep between iterations when not given” enough work per iteration 100 intx
CMSRescanMultiple Size (in cards) of CMS parallel rescan task 32 uintx
CMSConcMarkMultiple Size (in cards) of CMS concurrent MT marking task 32 uintx
CMSRevisitStackSize Size of CMS KlassKlass revisit stack 1*M uintx
CMSAbortSemantics Whether abort-on-overflow semantics is implemented false bool
CMSParallelRemarkEnabled Whether parallel remark enabled (only if ParNewGC) true bool
CMSParallelSurvivorRemarkEnabled Whether parallel remark of survivor space” enabled (effective only if CMSParallelRemarkEnabled) true bool
CMSPLABRecordAlways Whether to always record survivor space PLAB bdries” (effective only if CMSParallelSurvivorRemarkEnabled) true bool
CMSConcurrentMTEnabled Whether multi-threaded concurrent work enabled (if ParNewGC) true bool
CMSPermGenPrecleaningEnabled Whether concurrent precleaning enabled in perm gen” (effective only when CMSPrecleaningEnabled is true) true bool
CMSPermGenSweepingEnabled Whether sweeping of perm gen is enabled false bool
CMSPrecleaningEnabled Whether concurrent precleaning enabled true bool
CMSPrecleanIter Maximum number of precleaning iteration passes 3 uintx
CMSPrecleanNumerator CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence” ratio 2 uintx
CMSPrecleanDenominator CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence” ratio 3 uintx
CMSPrecleanRefLists1 Preclean ref lists during (initial) preclean phase true bool
CMSPrecleanRefLists2 Preclean ref lists during abortable preclean phase false bool
CMSPrecleanSurvivors1 Preclean survivors during (initial) preclean phase false bool
CMSPrecleanSurvivors2 Preclean survivors during abortable preclean phase true bool
CMSPrecleanThreshold Don’t re-iterate if #dirty cards less than this 1000 uintx
CMSCleanOnEnter Clean-on-enter optimization for reducing number of dirty cards true bool
CMSRemarkVerifyVariant Choose variant (1,2) of verification following remark 1 uintx
CMSScheduleRemarkEdenSizeThreshold If Eden used is below this value, don’t try to schedule remark 2*M uintx
CMSScheduleRemarkEdenPenetration The Eden occupancy % at which to try and schedule remark pause 50 uintx
CMSScheduleRemarkSamplingRatio Start sampling Eden top at least before yg occupancy reaches” 1/ of the size at which we plan to schedule remark 5 uintx
CMSSamplingGrain The minimum distance between eden samples for CMS (see above) 16*K uintx
CMSScavengeBeforeRemark Attempt scavenge before the CMS remark step false bool
CMSWorkQueueDrainThreshold Don’t drain below this size per parallel worker/thief 10 uintx
CMSWaitDuration Time in milliseconds that CMS thread waits for young GC 2000 intx
CMSYield Yield between steps of concurrent mark & sweep true bool
CMSBitMapYieldQuantum Bitmap operations should process at most this many bits” between yields 10*M uintx
BlockOffsetArrayUseUnallocatedBlock Maintain _unallocated_block in BlockOffsetArray” (currently applicable only to CMS collector) trueInDebug bool
RefDiscoveryPolicy Whether reference-based(0) or referent-based(1) 0 intx
ParallelRefProcEnabled Enable parallel reference processing whenever possible false bool
CMSTriggerRatio Percentage of MinHeapFreeRatio in CMS generation that is allocated before a CMS collection cycle commences 80 intx
CMSBootstrapOccupancy Percentage CMS generation occupancy at which to initiate CMS collection for bootstrapping collection stats 50 intx
CMSInitiatingOccupancyFraction Percentage CMS generation occupancy to start a CMS collection cycle (A negative value means that CMSTirggerRatio is used). See good explanation about that parameter here. -1 intx
UseCMSInitiatingOccupancyOnly Only use occupancy as a crierion for starting a CMS collection. See good explanation about that parameter here. false bool
HandlePromotionFailure The youngest generation collection does not require” a guarantee of full promotion of all live objects. true bool
PreserveMarkStackSize Size for stack used in promotion failure handling 40 uintx
ZeroTLAB Zero out the newly created TLAB false bool
PrintTLAB Print various TLAB related information false bool
TLABStats Print various TLAB related information true bool
AlwaysActAsServerClassMachine Always act like a server-class machine false bool
DefaultMaxRAM Maximum real memory size for setting server class heap size G uintx
DefaultMaxRAMFraction Fraction (1/n) of real memory used for server class max heap 4 uintx
DefaultInitialRAMFraction Fraction (1/n) of real memory used for server class initial heap 64 uintx
UseAutoGCSelectPolicy Use automatic collection selection policy false bool
AutoGCSelectPauseMillis Automatic GC selection pause threshhold in ms 5000 uintx
UseAdaptiveSizePolicy Use adaptive generation sizing policies true bool
UsePSAdaptiveSurvivorSizePolicy Use adaptive survivor sizing policies true bool
UseAdaptiveGenerationSizePolicyAtMinorCollection Use adaptive young-old sizing policies at minor collections true bool
UseAdaptiveGenerationSizePolicyAtMajorCollection Use adaptive young-old sizing policies at major collections true bool
UseAdaptiveSizePolicyWithSystemGC Use statistics from System.GC for adaptive size policy false bool
UseAdaptiveGCBoundary Allow young-old boundary to move false bool
AdaptiveSizeThroughPutPolicy Policy for changeing generation size for throughput goals 0 uintx
AdaptiveSizePausePolicy Policy for changing generation size for pause goals 0 uintx
AdaptiveSizePolicyInitializingSteps Number of steps where heuristics is used before data is used 20 uintx
AdaptiveSizePolicyOutputInterval Collecton interval for printing information, zero => never 0 uintx
UseAdaptiveSizePolicyFootprintGoal Use adaptive minimum footprint as a goal true bool
AdaptiveSizePolicyWeight Weight given to exponential resizing, between 0 and 100 10 uintx
AdaptiveTimeWeight Weight given to time in adaptive policy, between 0 and 100 25 uintx
PausePadding How much buffer to keep for pause time 1 uintx
PromotedPadding How much buffer to keep for promotion failure 3 uintx
SurvivorPadding How much buffer to keep for survivor overflow 3 uintx
AdaptivePermSizeWeight Weight for perm gen exponential resizing, between 0 and 100 20 uintx
PermGenPadding How much buffer to keep for perm gen sizing 3 uintx
ThresholdTolerance Allowed collection cost difference between generations 10 uintx
AdaptiveSizePolicyCollectionCostMargin If collection costs are within margin, reduce both by full delta 50 uintx
YoungGenerationSizeIncrement Adaptive size percentage change in young generation 20 uintx
YoungGenerationSizeSupplement Supplement to YoungedGenerationSizeIncrement used at startup 80 uintx
YoungGenerationSizeSupplementDecay Decay factor to YoungedGenerationSizeSupplement 8 uintx
TenuredGenerationSizeIncrement Adaptive size percentage change in tenured generation 20 uintx
TenuredGenerationSizeSupplement Supplement to TenuredGenerationSizeIncrement used at startup 80 uintx
TenuredGenerationSizeSupplementDecay Decay factor to TenuredGenerationSizeIncrement 2 uintx
MaxGCPauseMillis Adaptive size policy maximum GC pause time goal in msec max_uintx uintx
MaxGCMinorPauseMillis Adaptive size policy maximum GC minor pause time goal in msec max_uintx uintx
GCTimeRatio Adaptive size policy application time to GC time ratio 99 uintx
AdaptiveSizeDecrementScaleFactor Adaptive size scale down factor for shrinking 4 uintx
UseAdaptiveSizeDecayMajorGCCost Adaptive size decays the major cost for long major intervals true bool
AdaptiveSizeMajorGCDecayTimeScale Time scale over which major costs decay 10 uintx
MinSurvivorRatio Minimum ratio of young generation/survivor space size 3 uintx
InitialSurvivorRatio Initial ratio of eden/survivor space size 8 uintx
BaseFootPrintEstimate Estimate of footprint other than Java Heap 256*M uintx
UseGCOverheadLimit Use policy to limit of proportion of time spent in GC before an OutOfMemory error is thrown true bool
GCTimeLimit Limit of proportion of time spent in GC before an OutOfMemory” error is thrown (used with GCHeapFreeLimit) 98 uintx
GCHeapFreeLimit Minimum percentage of free space after a full GC before an OutOfMemoryError is thrown (used with GCTimeLimit) 2 uintx
PrintAdaptiveSizePolicy Print information about AdaptiveSizePolicy false bool
DisableExplicitGC Tells whether calling System.gc() does a full GC false bool
CollectGen0First Collect youngest generation before each full GC false bool
BindGCTaskThreadsToCPUs Bind GCTaskThreads to CPUs if possible false bool
UseGCTaskAffinity Use worker affinity when asking for GCTasks false bool
ProcessDistributionStride Stride through processors when distributing processes 4 uintx
CMSCoordinatorYieldSleepCount number of times the coordinator GC thread will sleep while yielding before giving up and resuming GC 10 uintx
CMSYieldSleepCount number of times a GC thread (minus the coordinator) will sleep while yielding before giving up and resuming GC 0 uintx
PrintGCTaskTimeStamps Print timestamps for individual gc worker thread tasks false bool
TraceClassLoadingPreorder Trace all classes loaded in order referenced (not loaded) false bool
TraceGen0Time Trace accumulated time for Gen 0 collection false bool
TraceGen1Time Trace accumulated time for Gen 1 collection false bool
PrintTenuringDistribution Print tenuring age information false bool
PrintHeapAtSIGBREAK Print heap layout in response to SIGBREAK true bool
TraceParallelOldGCTasks Trace multithreaded GC activity false bool
PrintParallelOldGCPhaseTimes Print the time taken by each parallel old gc phase.” PrintGCDetails must also be enabled. false bool
CITime collect timing information for compilation false bool
Inline enable inlining true bool
ClipInlining clip inlining if aggregate method exceeds DesiredMethodLimit true bool
UseTypeProfile Check interpreter profile for historically monomorphic calls true bool
TypeProfileMinimumRatio Minimum ratio of profiled majority type to all minority types 9 intx
Tier1UpdateMethodData Update methodDataOops in Tier1-generated code false bool
PrintVMOptions print VM flag settings trueInDebug bool
ErrorFile If an error occurs, save the error data to this file [default: ./hs_err_pid%p.log] (%p replaced with pid) “” ccstr
DisplayVMOutputToStderr If DisplayVMOutput is true, display all VM output to stderr false bool
DisplayVMOutputToStdout If DisplayVMOutput is true, display all VM output to stdout false bool
UseHeavyMonitors use heavyweight instead of lightweight Java monitors false bool
RangeCheckElimination Split loop iterations to eliminate range checks true bool
SplitIfBlocks Clone compares and control flow through merge points to fold some branches true bool
AggressiveOpts Enable aggressive optimizations – see arguments.cpp false bool
PrintInterpreter Prints the generated interpreter code false bool
UseInterpreter Use interpreter for non-compiled methods true bool
UseNiagaraInstrs Use Niagara-efficient instruction subset false bool
UseLoopCounter Increment invocation counter on backward branch true bool
UseFastEmptyMethods Use fast method entry code for empty methods true bool
UseFastAccessorMethods Use fast method entry code for accessor methods true bool
EnableJVMPIInstructionStartEvent Enable JVMPI_EVENT_INSTRUCTION_START events – slows down interpretation false bool
JVMPICheckGCCompatibility If JVMPI is used, make sure that we are using a JVMPI-compatible garbage collector true bool
ProfileMaturityPercentage number of method invocations/branches (expressed as % of CompileThreshold) before using the method’s profile 20 intx
UseCompiler use compilation true bool
UseCounterDecay adjust recompilation counters true bool
AlwaysCompileLoopMethods when using recompilation, never interpret methods containing loops false bool
DontCompileHugeMethods don’t compile methods > HugeMethodLimit true bool
EstimateArgEscape Analyze bytecodes to estimate escape state of arguments true bool
BCEATraceLevel How much tracing to do of bytecode escape analysis estimates 0 intx
MaxBCEAEstimateLevel Maximum number of nested calls that are analyzed by BC EA. 5 intx
MaxBCEAEstimateSize Maximum bytecode size of a method to be analyzed by BC EA. 150 intx
SelfDestructTimer Will cause VM to terminate after a given time (in minutes) (0 means off) 0 intx
MaxJavaStackTraceDepth Max. no. of lines in the stack trace for Java exceptions (0 means all) 1024 intx
NmethodSweepFraction Number of invocations of sweeper to cover all nmethods 4 intx
MaxInlineSize maximum bytecode size of a method to be inlined 35 intx
ProfileIntervalsTicks # of ticks between printing of interval profile (+ProfileIntervals) 100 intx
EventLogLength maximum nof events in event log 2000 intx
PerMethodRecompilationCutoff After recompiling N times, stay in the interpreter (-1=>’Inf’) 400 intx
PerBytecodeRecompilationCutoff Per-BCI limit on repeated recompilation (-1=>’Inf’) 100 intx
PerMethodTrapLimit Limit on traps (of one kind) in a method (includes inlines) 100 intx
PerBytecodeTrapLimit Limit on traps (of one kind) at a particular BCI 4 intx
AliasLevel 0 for no aliasing, 1 for oop/field/static/array split, 2 for best 2 intx
ReadSpinIterations Number of read attempts before a yield (spin inner loop) 100 intx
PreBlockSpin Number of times to spin in an inflated lock before going to an OS lock 10 intx
MaxHeapSize Default maximum size for object heap (in bytes) ScaleForWordSize (64*M) uintx
MaxNewSize Maximum size of new generation (in bytes) max_uintx uintx
PretenureSizeThreshold Max size in bytes of objects allocated in DefNew generation 0 uintx
MinTLABSize Minimum allowed TLAB size (in bytes) 2*K uintx
TLABAllocationWeight Allocation averaging weight 35 uintx
TLABWasteTargetPercent Percentage of Eden that can be wasted 1 uintx
TLABRefillWasteFraction Max TLAB waste at a refill (internal fragmentation) 64 uintx
TLABWasteIncrement Increment allowed waste at slow allocation 4 uintx
MaxLiveObjectEvacuationRatio Max percent of eden objects that will be live at scavenge 100 uintx
OldSize Default size of tenured generation (in bytes) ScaleForWordSize (4096*K) uintx
MinHeapFreeRatio Min percentage of heap free after GC to avoid expansion 40 uintx
MaxHeapFreeRatio Max percentage of heap free after GC to avoid shrinking 70 uintx
SoftRefLRUPolicyMSPerMB Number of milliseconds per MB of free space in the heap 1000 intx
MinHeapDeltaBytes Min change in heap space due to GC (in bytes) ScaleForWordSize (128*K) uintx
MinPermHeapExpansion Min expansion of permanent heap (in bytes) ScaleForWordSize (256*K) uintx
MaxPermHeapExpansion Max expansion of permanent heap without full GC (in bytes) ScaleForWordSize (4*M) uintx
QueuedAllocationWarningCount Number of times an allocation that queues behind a GC will retry before printing a warning 0 intx
MaxTenuringThreshold Maximum value for tenuring threshold. See more info about that flag here. 15 intx
InitialTenuringThreshold Initial value for tenuring threshold 7 intx
TargetSurvivorRatio Desired percentage of survivor space used after scavenge 50 intx
MarkSweepDeadRatio Percentage (0-100) of the old gen allowed as dead wood. “Serial mark sweep treats this as both the min and max value.” CMS uses this value only if it falls back to mark sweep.” Par compact uses a variable scale based on the density of the” generation and treats this as the max value when the heap is” either completely full or completely empty. Par compact also” has a smaller default value; see arguments.cpp. 5 intx
PermMarkSweepDeadRatio Percentage (0-100) of the perm gen allowed as dead wood.” See MarkSweepDeadRatio for collector-specific comments. 20 intx
MarkSweepAlwaysCompactCount How often should we fully compact the heap (ignoring the dead space parameters) 4 intx
PrintCMSStatistics Statistics for CMS 0 intx
PrintCMSInitiationStatistics Statistics for initiating a CMS collection false bool
PrintFLSStatistics Statistics for CMS’ FreeListSpace 0 intx
PrintFLSCensus Census for CMS’ FreeListSpace 0 intx
DeferThrSuspendLoopCount (Unstable) Number of times to iterate in safepoint loop before blocking VM threads 4000 intx
DeferPollingPageLoopCount (Unsafe,Unstable) Number of iterations in safepoint loop before changing safepoint polling page to RO -1 intx
SafepointSpinBeforeYield (Unstable) 2000 intx
UseDepthFirstScavengeOrder true: the scavenge order will be depth-first, false: the scavenge order will be breadth-first true bool
GCDrainStackTargetSize how many entries we’ll try to leave on the stack during parallel GC 64 uintx
ThreadSafetyMargin Thread safety margin is used on fixed-stack LinuxThreads (on Linux/x86 only) to prevent heap-stack collision. Set to 0 to disable this feature 50*M uintx
CodeCacheMinimumFreeSpace When less than X space left, we stop compiling. 500*K uintx
CompileOnly List of methods (pkg/class.name) to restrict compilation to “” ccstr
CompileCommandFile Read compiler commands from this file [.hotspot_compiler] “” ccstr
CompileCommand Prepend to .hotspot_compiler; e.g. log,java/lang/String. “” ccstr
CICompilerCountPerCPU 1 compiler thread for log(N CPUs) false bool
UseThreadPriorities Use native thread priorities true bool
ThreadPriorityPolicy 0 : Normal. VM chooses priorities that are appropriate for normal applications. On Solaris NORM_PRIORITY and above are mapped to normal native priority. Java priorities below NORM_PRIORITY” map to lower native priority values. On Windows applications” are allowed to use higher native priorities. However, with ThreadPriorityPolicy=0, VM will not use the highest possible” native priority, THREAD_PRIORITY_TIME_CRITICAL, as it may interfere with system threads. On Linux thread priorities are ignored because the OS does not support static priority in SCHED_OTHER scheduling class which is the only choice for” non-root, non-realtime applications. 1 : Aggressive. Java thread priorities map over to the entire range of native thread priorities. Higher Java thread priorities map to higher native thread priorities. This policy should be used with care, as sometimes it can cause performance degradation in the application and/or the entire system. On Linux this policy requires root privilege. 0 intx
ThreadPriorityVerbose print priority changes false bool
DefaultThreadPriority what native priority threads run at if not specified elsewhere (-1 means no change) -1 intx
CompilerThreadPriority what priority should compiler threads run at (-1 means no change) -1 intx
VMThreadPriority what priority should VM threads run at (-1 means no change) -1 intx
CompilerThreadHintNoPreempt (Solaris only) Give compiler threads an extra quanta true bool
VMThreadHintNoPreempt (Solaris only) Give VM thread an extra quanta false bool
JavaPriority1_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority2_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority3_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority4_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority5_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority6_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority7_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority8_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority9_To_OSPriority Map Java priorities to OS priorities -1 intx
JavaPriority10_To_OSPriority Map Java priorities to OS priorities -1 intx
StarvationMonitorInterval Pause between each check in ms 200 intx
Tier1BytecodeLimit Must have at least this many bytecodes before tier1″ invocation counters are used 10 intx
StressTieredRuntime Alternate client and server compiler on compile requests false bool
InterpreterProfilePercentage number of method invocations/branches (expressed as % of CompileThreshold) before profiling in the interpreter 33 intx
MaxDirectMemorySize Maximum total size of NIO direct-buffer allocations -1 intx
UseUnsupportedDeprecatedJVMPI Flag to temporarily re-enable the, soon to be removed, experimental interface JVMPI. false bool
UsePerfData Flag to disable jvmstat instrumentation for performance testing” and problem isolation purposes. true bool
PerfDataSaveToFile Save PerfData memory to hsperfdata_ file on exit false bool
PerfDataSamplingInterval Data sampling interval in milliseconds 50 /*ms*/ intx
PerfDisableSharedMem Store performance data in standard memory false bool
PerfDataMemorySize Size of performance data memory region. Will be rounded up to a multiple of the native os page size. 32*K intx
PerfMaxStringConstLength Maximum PerfStringConstant string length before truncation 1024 intx
PerfAllowAtExitRegistration Allow registration of atexit() methods false bool
PerfBypassFileSystemCheck Bypass Win32 file system criteria checks (Windows Only) false bool
UnguardOnExecutionViolation Unguard page and retry on no-execute fault (Win32 only)” 0=off, 1=conservative, 2=aggressive 0 intx
ManagementServer Create JMX Management Server false bool
DisableAttachMechanism Disable mechanism that allows tools to attach to this VM false bool
StartAttachListener Always start Attach Listener at VM startup false bool
UseSharedSpaces Use shared spaces in the permanent generation true bool
RequireSharedSpaces Require shared spaces in the permanent generation false bool
ForceSharedSpaces Require shared spaces in the permanent generation false bool
DumpSharedSpaces Special mode: JVM reads a class list, loads classes, builds shared spaces, and dumps the shared spaces to a file to be used in future JVM runs. false bool
PrintSharedSpaces Print usage of shared spaces false bool
SharedDummyBlockSize Size of dummy block used to shift heap addresses (in bytes) 512*M uintx
SharedReadWriteSize Size of read-write space in permanent generation (in bytes) 12*M uintx
SharedReadOnlySize Size of read-only space in permanent generation (in bytes) 8*M uintx
SharedMiscDataSize Size of the shared data area adjacent to the heap (in bytes) 4*M uintx
SharedMiscCodeSize Size of the shared code area adjacent to the heap (in bytes) 4*M uintx
TaggedStackInterpreter Insert tags in interpreter execution stack for oopmap generaion false bool
ExtendedDTraceProbes Enable performance-impacting dtrace probes false bool
DTraceMethodProbes Enable dtrace probes for method-entry and method-exit false bool
DTraceAllocProbes Enable dtrace probes for object allocation false bool
DTraceMonitorProbes Enable dtrace probes for monitor events false bool
RelaxAccessControlCheck Relax the access control checks in the verifier false bool
UseVMInterruptibleIO (Unstable, Solaris-specific) Thread interrupt before or with EINTR for I/O operations results in OS_INTRPT true bool
AggressiveHeap The option inspects the server resources (size of memory and number of processors), and attempts to set various parameters to be optimal for long-running, memory allocation-intensive jobs. The JVM team view AggressiveHeap as an anachronism and would like to see it go away. Instead, we’d prefer for you to determine which of the individual options that AggressiveHeap sets actually impact your app, and then set those on the command line directly. You can check the Open JDK source code to see what AggressiveHeap actually does (arguments.cpp) false bool
UseCompressedStrings Use a byte[] for Strings which can be represented as pure ASCII. (Introduced in Java 6 Update 21 Performance Release) false bool
OptimizeStringConcat Optimize String concatenation operations where possible. (Introduced in Java 6 Update 20) false bool
UseStringCache Enables caching of commonly allocated strings. false bool
manageable
HeapDumpOnOutOfMemoryError Dump heap to file when java.lang.OutOfMemoryError is thrown false bool
HeapDumpPath When HeapDumpOnOutOfMemoryError is on, the path (filename or” directory) of the dump file (defaults to java_pid.hprof” in the working directory) “” ccstr
PrintGC Print message at garbage collect false bool
PrintGCDetails Print more details at garbage collect false bool
PrintGCTimeStamps Print timestamps at garbage collect false bool
PrintClassHistogram Print a histogram of class instances false bool
PrintConcurrentLocks Print java.util.concurrent locks in thread dump false bool
experimental
UnlockExperimentalVMOptions Unlocks experimental options. false bool
UseG1GC Switch on G1 for Java6. G1 is default for Java7, so there is no such option there. false bool
product_rw
TraceClassLoading Trace all classes loaded false bool
TraceClassUnloading Trace unloading of classes false bool
TraceLoaderConstraints Trace loader constraints false bool
PrintHeapAtGC Print heap layout before and after each GC false bool
develop
TraceItables Trace initialization and use of itables false bool
TracePcPatching Trace usage of frame::patch_pc false bool
TraceJumps Trace assembly jumps in thread ring buffer false bool
TraceRelocator Trace the bytecode relocator false bool
TraceLongCompiles Print out every time compilation is longer than a given threashold false bool
SafepointALot Generates a lot of safepoints. Works with GuaranteedSafepointInterval false bool
BailoutToInterpreterForThrows Compiled methods which throws/catches exceptions will be deopt and intp. false bool
NoYieldsInMicrolock Disable yields in microlock false bool
TraceOopMapGeneration Shows oopmap generation false bool
MethodFlushing Reclamation of zombie and not-entrant methods true bool
VerifyStack Verify stack of each thread when it is entering a runtime call false bool
TraceDerivedPointers Trace traversal of derived pointers on stack false bool
InlineArrayCopy inline arraycopy native that is known to be part of base library DLL true bool
InlineObjectHash inline Object::hashCode() native that is known to be part of base library DLL true bool
InlineNatives inline natives that are known to be part of base library DLL true bool
InlineMathNatives inline SinD, CosD, etc. true bool
InlineClassNatives inline Class.isInstance, etc true bool
InlineAtomicLong inline sun.misc.AtomicLong true bool
InlineThreadNatives inline Thread.currentThread, etc true bool
InlineReflectionGetCallerClass inline sun.reflect.Reflection.getCallerClass(), known to be part of base library DLL true bool
InlineUnsafeOps inline memory ops (native methods) from sun.misc.Unsafe true bool
ConvertCmpD2CmpF Convert cmpD to cmpF when one input is constant in float range true bool
ConvertFloat2IntClipping Convert float2int clipping idiom to integer clipping true bool
SpecialStringCompareTo special version of string compareTo true bool
SpecialStringIndexOf special version of string indexOf true bool
TraceCallFixup traces all call fixups false bool
DeoptimizeALot deoptimize at every exit from the runtime system false bool
DeoptimizeOnlyAt a comma separated list of bcis to deoptimize at “” ccstr
Debugging set when executing debug methods in debug.ccp (to prevent triggering assertions) false bool
TraceHandleAllocation Prints out warnings when suspicious many handles are allocated false bool
ShowSafepointMsgs Show msg. about safepoint synch. false bool
SafepointTimeout Time out and warn or fail after SafepointTimeoutDelay milliseconds if failed to reach safepoint false bool
DieOnSafepointTimeout Die upon failure to reach safepoint (see SafepointTimeout) false bool
ForceFloatExceptions Force exceptions on FP stack under/overflow trueInDebug bool
SoftMatchFailure If the DFA fails to match a node, print a message and bail out trueInProduct bool
VerifyStackAtCalls Verify that the stack pointer is unchanged after calls false bool
TraceJavaAssertions Trace java language assertions false bool
ZapDeadCompiledLocals Zap dead locals in compiler frames false bool
UseMallocOnly use only malloc/free for allocation (no resource area/arena) false bool
PrintMalloc print all malloc/free calls false bool
ZapResourceArea Zap freed resource/arena space with 0xABABABAB trueInDebug bool
ZapJNIHandleArea Zap freed JNI handle space with 0xFEFEFEFE trueInDebug bool
ZapUnusedHeapArea Zap unused heap space with 0xBAADBABE trueInDebug bool
PrintVMMessages Print vm messages on console true bool
Verbose Prints additional debugging information from other modes false bool
PrintMiscellaneous Prints uncategorized debugging information (requires +Verbose) false bool
WizardMode Prints much more debugging information false bool
SegmentedHeapDumpThreshold Generate a segmented heap dump (JAVA PROFILE 1.0.2 format) when the heap usage is larger than this 2*G uintx
HeapDumpSegmentSize Approximate segment size when generating a segmented heap dump 1*G uintx
BreakAtWarning Execute breakpoint upon encountering VM warning false bool
TraceVMOperation Trace vm operations false bool
UseFakeTimers Tells whether the VM should use system time or a fake timer false bool
PrintAssembly Print assembly code. Requires disassembler plugin, see details here. false bool
PrintNMethods Print assembly code for nmethods when generated false bool
PrintNativeNMethods Print assembly code for native nmethods when generated false bool
PrintDebugInfo Print debug information for all nmethods when generated false bool
PrintRelocations Print relocation information for all nmethods when generated false bool
PrintDependencies Print dependency information for all nmethods when generated false bool
PrintExceptionHandlers Print exception handler tables for all nmethods when generated false bool
InterceptOSException Starts debugger when an implicit OS (e.g., NULL) exception happens false bool
PrintCodeCache2 Print detailed info on the compiled_code cache when exiting false bool
PrintStubCode Print generated stub code false bool
PrintJVMWarnings Prints warnings for unimplemented JVM functions false bool
InitializeJavaLangSystem Initialize java.lang.System – turn off for individual method debugging true bool
InitializeJavaLangString Initialize java.lang.String – turn off for individual method debugging true bool
InitializeJavaLangExceptionsErrors Initialize various error and exception classes – turn off for individual method debugging true bool
RegisterReferences Tells whether the VM should register soft/weak/final/phantom references true bool
IgnoreRewrites Supress rewrites of bytecodes in the oopmap generator. This is unsafe! false bool
PrintCodeCacheExtension Print extension of code cache false bool
UsePrivilegedStack Enable the security JVM functions true bool
IEEEPrecision Enables IEEE precision (for INTEL only) true bool
ProtectionDomainVerification Verifies protection domain before resolution in system dictionary true bool
DisableStartThread Disable starting of additional Java threads (for debugging only) false bool
MemProfiling Write memory usage profiling to log file false bool
UseDetachedThreads Use detached threads that are recycled upon termination (for SOLARIS only) true bool
UsePthreads Use pthread-based instead of libthread-based synchronization (SPARC only) false bool
UpdateHotSpotCompilerFileOnError Should the system attempt to update the compiler file when an error occurs? true bool
LoadLineNumberTables Tells whether the class file parser loads line number tables true bool
LoadLocalVariableTables Tells whether the class file parser loads local variable tables true bool
LoadLocalVariableTypeTables Tells whether the class file parser loads local variable type tables true bool
PreallocatedOutOfMemoryErrorCount Number of OutOfMemoryErrors preallocated with backtrace 4 uintx
PrintBiasedLockingStatistics Print statistics of biased locking in JVM false bool
TraceJVMPI Trace JVMPI false bool
TraceJNICalls Trace JNI calls false bool
TraceJNIHandleAllocation Trace allocation/deallocation of JNI handle blocks false bool
TraceThreadEvents Trace all thread events false bool
TraceBytecodes Trace bytecode execution false bool
TraceClassInitialization Trace class initialization false bool
TraceExceptions Trace exceptions false bool
TraceICs Trace inline cache changes false bool
TraceInlineCacheClearing Trace clearing of inline caches in nmethods false bool
TraceDependencies Trace dependencies false bool
VerifyDependencies Exercise and verify the compilation dependency mechanism trueInDebug bool
TraceNewOopMapGeneration Trace OopMapGeneration false bool
TraceNewOopMapGenerationDetailed Trace OopMapGeneration: print detailed cell states false bool
TimeOopMap Time calls to GenerateOopMap::compute_map() in sum false bool
TimeOopMap2 Time calls to GenerateOopMap::compute_map() individually false bool
TraceMonitorMismatch Trace monitor matching failures during OopMapGeneration false bool
TraceOopMapRewrites Trace rewritting of method oops during oop map generation false bool
TraceSafepoint Trace safepoint operations false bool
TraceICBuffer Trace usage of IC buffer false bool
TraceCompiledIC Trace changes of compiled IC false bool
TraceStartupTime Trace setup time false bool
TraceHPI Trace Host Porting Interface (HPI) false bool
TraceProtectionDomainVerification Trace protection domain verifcation false bool
TraceClearedExceptions Prints when an exception is forcibly cleared false bool
UseParallelOldGCChunkPointerCalc In the Parallel Old garbage collector use chucks to calculate” new object locations true bool
VerifyParallelOldWithMarkSweep Use the MarkSweep code to verify phases of Parallel Old false bool
VerifyParallelOldWithMarkSweepInterval Interval at which the MarkSweep code is used to verify phases of Parallel Old 1 uintx
ParallelOldMTUnsafeMarkBitMap Use the Parallel Old MT unsafe in marking the bitmap false bool
ParallelOldMTUnsafeUpdateLiveData Use the Parallel Old MT unsafe in update of live size false bool
TraceChunkTasksQueuing Trace the queuing of the chunk tasks false bool
ScavengeWithObjectsInToSpace Allow scavenges to occur when to_space contains objects. false bool
UseCMSAdaptiveFreeLists Use Adaptive Free Lists in the CMS generation true bool
UseAsyncConcMarkSweepGC Use Asynchronous Concurrent Mark-Sweep GC in the old generation true bool
RotateCMSCollectionTypes Rotate the CMS collections among concurrent and STW false bool
CMSTraceIncrementalMode Trace CMS incremental mode false bool
CMSTraceIncrementalPacing Trace CMS incremental mode pacing computation false bool
CMSTraceThreadState Trace the CMS thread state (enable the trace_state() method) false bool
CMSDictionaryChoice Use BinaryTreeDictionary as default in the CMS generation 0 intx
CMSOverflowEarlyRestoration Whether preserved marks should be restored early false bool
CMSTraceSweeper Trace some actions of the CMS sweeper false bool
FLSVerifyDictionary Do lots of (expensive) FLS dictionary verification false bool
VerifyBlockOffsetArray Do (expensive!) block offset array verification false bool
TraceCMSState Trace the state of the CMS collection false bool
CMSTestInFreeList Check if the coalesced range is already in the free lists as claimed. false bool
CMSIgnoreResurrection Ignore object resurrection during the verification. true bool
FullGCALot Force full gc at every Nth exit from the runtime system (N=FullGCALotInterval) false bool
PromotionFailureALotCount Number of promotion failures occurring at ParGCAllocBuffer” refill attempts (ParNew) or promotion attempts (other young collectors) 1000 uintx
PromotionFailureALotInterval Total collections between promotion failures alot 5 uintx
WorkStealingSleepMillis Sleep time when sleep is used for yields 1 intx
WorkStealingYieldsBeforeSleep Number of yields before a sleep is done during workstealing 1000 uintx
TraceAdaptiveGCBoundary Trace young-old boundary moves false bool
PSAdaptiveSizePolicyResizeVirtualSpaceAlot Resize the virtual spaces of the young or old generations -1 intx
PSAdjustTenuredGenForMinorPause Adjust tenured generation to achive a minor pause goal false bool
PSAdjustYoungGenForMajorPause Adjust young generation to achive a major pause goal false bool
AdaptiveSizePolicyReadyThreshold Number of collections before the adaptive sizing is started 5 uintx
AdaptiveSizePolicyGCTimeLimitThreshold Number of consecutive collections before gc time limit fires 5 uintx
UsePrefetchQueue Use the prefetch queue during PS promotion true bool
ConcGCYieldTimeout If non-zero, assert that GC threads yield within this # of ms. 0 intx
TraceReferenceGC Trace handling of soft/weak/final/phantom references false bool
TraceFinalizerRegistration Trace registration of final references false bool
TraceWorkGang Trace activities of work gangs false bool
TraceBlockOffsetTable Print BlockOffsetTable maps false bool
TraceCardTableModRefBS Print CardTableModRefBS maps false bool
TraceGCTaskManager Trace actions of the GC task manager false bool
TraceGCTaskQueue Trace actions of the GC task queues false bool
TraceGCTaskThread Trace actions of the GC task threads false bool
TraceParallelOldGCMarkingPhase Trace parallel old gc marking phase false bool
TraceParallelOldGCSummaryPhase Trace parallel old gc summary phase false bool
TraceParallelOldGCCompactionPhase Trace parallel old gc compaction phase false bool
TraceParallelOldGCDensePrefix Trace parallel old gc dense prefix computation false bool
IgnoreLibthreadGPFault Suppress workaround for libthread GP fault false bool
CIPrintCompilerName when CIPrint is active, print the name of the active compiler false bool
CIPrintCompileQueue display the contents of the compile queue whenever a compilation is enqueued false bool
CIPrintRequests display every request for compilation false bool
CITimeEach display timing information after each successful compilation false bool
CICountOSR use a separate counter when assigning ids to osr compilations true bool
CICompileNatives compile native methods if supported by the compiler true bool
CIPrintMethodCodes print method bytecodes of the compiled code false bool
CIPrintTypeFlow print the results of ciTypeFlow analysis false bool
CITraceTypeFlow detailed per-bytecode tracing of ciTypeFlow analysis false bool
CICloneLoopTestLimit size limit for blocks heuristically cloned in ciTypeFlow 100 intx
UseStackBanging use stack banging for stack overflow checks (required for proper StackOverflow handling; disable only to measure cost of stackbanging) true bool
Use24BitFPMode Set 24-bit FPU mode on a per-compile basis true bool
Use24BitFP use FP instructions that produce 24-bit precise results true bool
UseStrictFP use strict fp if modifier strictfp is set true bool
GenerateSynchronizationCode generate locking/unlocking code for synchronized methods and monitors true bool
GenerateCompilerNullChecks Generate explicit null checks for loads/stores/calls true bool
GenerateRangeChecks Generate range checks for array accesses true bool
PrintSafepointStatistics print statistics about safepoint synchronization false bool
InlineAccessors inline accessor methods (get/set) true bool
UseCHA enable CHA true bool
PrintInlining prints inlining optimizations false bool
EagerInitialization Eagerly initialize classes if possible false bool
TraceMethodReplacement Print when methods are replaced do to recompilation false bool
PrintMethodFlushing print the nmethods being flushed false bool
UseRelocIndex use an index to speed random access to relocations false bool
StressCodeBuffers Exercise code buffer expansion and other rare state changes false bool
DebugVtables add debugging code to vtable dispatch false bool
PrintVtables print vtables when printing klass false bool
TraceCreateZombies trace creation of zombie nmethods false bool
MonomorphicArrayCheck Uncommon-trap array store checks that require full type check true bool
DelayCompilationDuringStartup Delay invoking the compiler until main application class is loaded true bool
CompileTheWorld Compile all methods in all classes in bootstrap class path (stress test) false bool
CompileTheWorldPreloadClasses Preload all classes used by a class before start loading true bool
TraceIterativeGVN Print progress during Iterative Global Value Numbering false bool
FillDelaySlots Fill delay slots (on SPARC only) true bool
VerifyIterativeGVN Verify Def-Use modifications during sparse Iterative Global Value Numbering false bool
TimeLivenessAnalysis Time computation of bytecode liveness analysis false bool
TraceLivenessGen Trace the generation of liveness analysis information false bool
PrintDominators Print out dominator trees for GVN false bool
UseLoopSafepoints Generate Safepoint nodes in every loop true bool
DeutschShiffmanExceptions Fast check to find exception handler for precisely typed exceptions true bool
FastAllocateSizeLimit Inline allocations larger than this in doublewords must go slow 100000 intx
UseVTune enable support for Intel’s VTune profiler false bool
CountCompiledCalls counts method invocations false bool
CountJNICalls counts jni method invocations false bool
ClearInterpreterLocals Always clear local variables of interpreter activations upon entry false bool
UseFastSignatureHandlers Use fast signature handlers for native calls true bool
UseV8InstrsOnly Use SPARC-V8 Compliant instruction subset false bool
UseCASForSwap Do not use swap instructions, but only CAS (in a loop) on SPARC false bool
PoisonOSREntry Detect abnormal calls to OSR code true bool
CountBytecodes Count number of bytecodes executed false bool
PrintBytecodeHistogram Print histogram of the executed bytecodes false bool
PrintBytecodePairHistogram Print histogram of the executed bytecode pairs false bool
PrintSignatureHandlers Print code generated for native method signature handlers false bool
VerifyOops Do plausibility checks for oops false bool
CheckUnhandledOops Check for unhandled oops in VM code false bool
VerifyJNIFields Verify jfieldIDs for instance fields trueInDebug bool
VerifyFPU Verify FPU state (check for NaN’s, etc.) false bool
VerifyThread Watch the thread register for corruption (SPARC only) false bool
VerifyActivationFrameSize Verify that activation frame didn’t become smaller than its minimal size false bool
TraceFrequencyInlining Trace frequency based inlining false bool
PrintMethodData Print the results of +ProfileInterpreter at end of run false bool
VerifyDataPointer Verify the method data pointer during interpreter profiling trueInDebug bool
TraceCompilationPolicy Trace compilation policy false bool
TimeCompilationPolicy Time the compilation policy false bool
CounterHalfLifeTime half-life time of invocation counters (in secs) 30 intx
CounterDecayMinIntervalLength Min. ms. between invocation of CounterDecay 500 intx
TraceDeoptimization Trace deoptimization false bool
DebugDeoptimization Tracing various information while debugging deoptimization false bool
GuaranteedSafepointInterval Guarantee a safepoint (at least) every so many milliseconds (0 means none) 1000 intx
SafepointTimeoutDelay Delay in milliseconds for option SafepointTimeout 10000 intx
MallocCatchPtr Hit breakpoint when mallocing/freeing this pointer -1 intx
TotalHandleAllocationLimit Threshold for total handle allocation when +TraceHandleAllocation is used 1024 uintx
StackPrintLimit number of stack frames to print in VM-level stack dump 100 intx
MaxInlineLevel maximum number of nested calls that are inlined 9 intx
MaxRecursiveInlineLevel maximum number of nested recursive calls that are inlined 1 intx
InlineSmallCode Only inline already compiled methods if their code size is less than this 1000 intx
MaxTrivialSize maximum bytecode size of a trivial method to be inlined 6 intx
MinInliningThreshold min. invocation count a method needs to have to be inlined 250 intx
AlignEntryCode aligns entry code to specified value (in bytes) 4 intx
MethodHistogramCutoff cutoff value for method invoc. histogram (+CountCalls) 100 intx
ProfilerNumberOfInterpretedMethods # of interpreted methods to show in profile 25 intx
ProfilerNumberOfCompiledMethods # of compiled methods to show in profile 25 intx
ProfilerNumberOfStubMethods # of stub methods to show in profile 25 intx
ProfilerNumberOfRuntimeStubNodes # of runtime stub nodes to show in profile 25 intx
DontYieldALotInterval Interval between which yields will be dropped (milliseconds) 10 intx
MinSleepInterval Minimum sleep() interval (milliseconds) when ConvertSleepToYield is off (used for SOLARIS) 1 intx
ProfilerPCTickThreshold Number of ticks in a PC buckets to be a hotspot 15 intx
StressNonEntrant Mark nmethods non-entrant at registration false bool
TypeProfileWidth number of receiver types to record in call profile 2 intx
BciProfileWidth number of return bci’s to record in ret profile 2 intx
FreqCountInvocations Scaling factor for branch frequencies (deprecated) 1 intx
InlineFrequencyRatio Ratio of call site execution to caller method invocation 20 intx
InlineThrowCount Force inlining of interpreted methods that throw this often 50 intx
InlineThrowMaxSize Force inlining of throwing methods smaller than this 200 intx
VerifyAliases perform extra checks on the results of alias analysis false bool
ProfilerNodeSize Size in K to allocate for the Profile Nodes of each thread 1024 intx
V8AtomicOperationUnderLockSpinCount Number of times to spin wait on a v8 atomic operation lock 50 intx
ExitAfterGCNum If non-zero, exit after this GC. 0 uintx
GCExpandToAllocateDelayMillis Delay in ms between expansion and allocation 0 uintx
CodeCacheSegmentSize Code cache segment size (in bytes) – smallest unit of allocation 64 uintx
BinarySwitchThreshold Minimal number of lookupswitch entries for rewriting to binary switch 5 intx
StopInterpreterAt Stops interpreter execution at specified bytecode number 0 intx
TraceBytecodesAt Traces bytecodes starting with specified bytecode number 0 intx
CIStart the id of the first compilation to permit 0 intx
CIStop the id of the last compilation to permit -1 intx
CIStartOSR the id of the first osr compilation to permit (CICountOSR must be on) 0 intx
CIStopOSR the id of the last osr compilation to permit (CICountOSR must be on) -1 intx
CIBreakAtOSR id of osr compilation to break at -1 intx
CIBreakAt id of compilation to break at -1 intx
CIFireOOMAt Fire OutOfMemoryErrors throughout CI for testing the compiler (non-negative value throws OOM after this many CI accesses in each compile) -1 intx
CIFireOOMAtDelay Wait for this many CI accesses to occur in all compiles before beginning to throw OutOfMemoryErrors in each compile -1 intx
NewCodeParameter Testing Only: Create a dedicated integer parameter before putback 0 intx
MinOopMapAllocation Minimum number of OopMap entries in an OopMapSet 8 intx
LongCompileThreshold Used with +TraceLongCompiles 50 intx
MaxRecompilationSearchLength max. # frames to inspect searching for recompilee 10 intx
MaxInterpretedSearchLength max. # interp. frames to skip when searching for recompilee 3 intx
DesiredMethodLimit desired max. method size (in bytecodes) after inlining 8000 intx
HugeMethodLimit don’t compile methods larger than this if +DontCompileHugeMethods 8000 intx
UseNewReflection Temporary flag for transition to reflection based on dynamic bytecode generation in 1.4; can no longer be turned off in 1.4 JDK, and is unneeded in 1.3 JDK, but marks most places VM changes were needed true bool
VerifyReflectionBytecodes Force verification of 1.4 reflection bytecodes. Does not work in situations like that described in 4486457 or for constructors generated for serialization, so can not be enabled in product. false bool
FastSuperclassLimit Depth of hardwired instanceof accelerator array 8 intx
PerfTraceDataCreation Trace creation of Performance Data Entries false bool
PerfTraceMemOps Trace PerfMemory create/attach/detach calls false bool
SharedOptimizeColdStartPolicy Reordering policy for SharedOptimizeColdStart 0=favor classload-time locality, 1=balanced, 2=favor runtime locality 2 intx
product_pd
UseLargePages Use large page memory bool
UseSSE 0=fpu stack,1=SSE for floats,2=SSE/SSE2 for all (x86/amd only) intx
UseISM Use Intimate Shared Memory. [Not accepted for non-Solaris platforms.] For details, see Intimate Shared Memory. true bool
UseMPSS Use Multiple Page Size Support w/4mb pages for the heap. Do not use with ISM as this replaces the need for ISM. (Introduced in 1.4.0 update 1, Relevant to Solaris 9 and newer.) [1.4.1 and earlier: false] false bool
BackgroundCompilation A thread requesting compilation is not blocked during compilation bool
UseVectoredExceptions Temp Flag – Use Vectored Exceptions rather than SEH (Windows Only) bool
DontYieldALot Throw away obvious excess yield calls (for SOLARIS only) bool
ConvertSleepToYield Converts sleep(0) to thread yield (may be off for SOLARIS to improve GUI) bool
UseTLAB Use thread-local object allocation bool
ResizeTLAB Dynamically resize tlab size for threads bool
NeverActAsServerClassMachine Never act like a server-class machine bool
PrefetchCopyIntervalInBytes How far ahead to prefetch destination area (<= 0 means off) intx
PrefetchScanIntervalInBytes How far ahead to prefetch scan area (<= 0 means off) intx
PrefetchFieldsAhead How many fields ahead to prefetch in oop scan (<= 0 means off) intx
CompilationPolicyChoice which compilation policy intx
RewriteBytecodes Allow rewriting of bytecodes (bytecodes are not immutable) bool
RewriteFrequentPairs Rewrite frequently used bytecode pairs into a single bytecode bool
UseOnStackReplacement Use on stack replacement, calls runtime if invoc. counter overflows in loop bool
PreferInterpreterNativeStubs Use always interpreter stubs for native methods invoked via interpreter bool
AllocatePrefetchStyle 0=no prefetch, 1=dead load, 2=prefetch instruction intx
AllocatePrefetchDistance Distance to prefetch ahead of allocation pointer intx
FreqInlineSize maximum bytecode size of a frequent method to be inlined intx
PreInflateSpin Number of times to spin wait before inflation intx
NewSize Default size of new generation (in bytes) uintx
TLABSize Default (or starting) size of TLAB (in bytes) uintx
SurvivorRatio Ratio of eden/survivor space size intx
NewRatio Ratio of new/old generation sizes intx
NewSizeThreadIncrease Additional size added to desired new generation size per non-daemon thread (in bytes) uintx
PermSize Default size of permanent generation (in bytes) uintx
MaxPermSize Maximum size of permanent generation (in bytes) uintx
StackYellowPages Number of yellow zone (recoverable overflows) pages intx
StackRedPages Number of red zone (unrecoverable overflows) pages intx
StackShadowPages Number of shadow zone (for overflow checking) pages” this should exceed the depth of the VM and native call stack intx
ThreadStackSize Thread Stack Size (in Kbytes) intx
VMThreadStackSize Non-Java Thread Stack Size (in Kbytes) intx
CompilerThreadStackSize Compiler Thread Stack Size (in Kbytes) intx
InitialCodeCacheSize Initial code cache size (in bytes) uintx
ReservedCodeCacheSize Reserved code cache size (in bytes) – maximum code cache size uintx
CodeCacheExpansionSize Code cache expansion size (in bytes) uintx
CompileThreshold number of method invocations/branches before (re-)compiling 10000 intx
Tier2CompileThreshold threshold at which a tier 2 compilation is invoked intx
Tier2BackEdgeThreshold Back edge threshold at which a tier 2 compilation is invoked intx
TieredCompilation Enable two-tier compilation bool
OnStackReplacePercentage number of method invocations/branches (expressed as % of CompileThreshold) before (re-)compiling OSR code intx
develop_pd
ShareVtableStubs Share vtable stubs (smaller code but worse branch prediction bool
CICompileOSR compile on stack replacement methods if supported by the compiler bool
ImplicitNullChecks generate code for implicit null checks bool
UncommonNullCast Uncommon-trap NULLs passed to check cast bool
InlineIntrinsics Inline intrinsics that can be statically resolved bool
ProfileInterpreter Profile at the bytecode level during interpretation bool
ProfileTraps Profile deoptimization traps at the bytecode level bool
InlineFrequencyCount Count of call site execution necessary to trigger frequent inlining intx
JVMInvokeMethodSlack Stack space (bytes) required for JVM_InvokeMethod to complete uintx
CodeEntryAlignment Code entry alignment for generated code (in bytes) intx
CodeCacheMinBlockLength Minimum number of segments in a code cache block. uintx
notproduct
StressDerivedPointers Force scavenge when a derived pointers is detected on stack after rtm call false bool
TraceCodeBlobStacks Trace stack-walk of codeblobs false bool
PrintRewrites Print methods that are being rewritten false bool
DeoptimizeRandom deoptimize random frames on random exit from the runtime system false bool
ZombieALot creates zombies (non-entrant) at exit from the runt. system false bool
WalkStackALot trace stack (no print) at every exit from the runtime system false bool
StrictSafepointChecks Enable strict checks that safepoints cannot happen for threads that used No_Safepoint_Verifier trueInDebug bool
VerifyLastFrame Verify oops on last frame on entry to VM false bool
LogEvents Enable Event log trueInDebug bool
CheckAssertionStatusDirectives temporary – see javaClasses.cpp false bool
PrintMallocFree Trace calls to C heap malloc/free allocation false bool
PrintOopAddress Always print the location of the oop false bool
VerifyCodeCacheOften Verify compiled-code cache often false bool
ZapDeadLocalsOld Zap dead locals (old version, zaps all frames when entering the VM false bool
CheckOopishValues Warn if value contains oop ( requires ZapDeadLocals) false bool
ZapVMHandleArea Zap freed VM handle space with 0xBCBCBCBC trueInDebug bool
PrintCompilation2 Print additional statistics per compilation false bool
PrintAdapterHandlers Print code generated for i2c/c2i adapters false bool
PrintCodeCache Print the compiled_code cache when exiting false bool
ProfilerCheckIntervals Collect and print info on spacing of profiler ticks false bool
WarnOnStalledSpinLock Prints warnings for stalled SpinLocks 0 uintx
PrintSystemDictionaryAtExit Prints the system dictionary at exit false bool
ValidateMarkSweep Do extra validation during MarkSweep collection false bool
RecordMarkSweepCompaction Enable GC-to-GC recording and querying of compaction during MarkSweep false bool
TraceRuntimeCalls Trace run-time calls false bool
TraceJVMCalls Trace JVM calls false bool
TraceInvocationCounterOverflow Trace method invocation counter overflow false bool
TraceZapDeadLocals Trace zapping dead locals false bool
CMSMarkStackOverflowALot Whether we should simulate frequent marking stack / work queue” overflow false bool
CMSMarkStackOverflowInterval A per-thread `interval’ counter that determines how frequently” we simulate overflow; a smaller number increases frequency 1000 intx
CMSVerifyReturnedBytes Check that all the garbage collected was returned to the free lists. false bool
ScavengeALot Force scavenge at every Nth exit from the runtime system (N=ScavengeALotInterval) false bool
GCALotAtAllSafepoints Enforce ScavengeALot/GCALot at all potential safepoints false bool
PromotionFailureALot Use promotion failure handling on every youngest generation collection false bool
CheckMemoryInitialization Checks memory initialization false bool
TraceMarkSweep Trace mark sweep false bool
PrintReferenceGC Print times spent handling reference objects during GC (enabled only when PrintGCDetails) false bool
TraceScavenge Trace scavenge false bool
TimeCompiler time the compiler false bool
TimeCompiler2 detailed time the compiler (requires +TimeCompiler) false bool
LogMultipleMutexLocking log locking and unlocking of mutexes (only if multiple locks are held) false bool
PrintSymbolTableSizeHistogram print histogram of the symbol table false bool
ExitVMOnVerifyError standard exit from VM if bytecode verify error (only in debug mode) false bool
AbortVMOnException Call fatal if this exception is thrown. Example: java -XX:AbortVMOnException=java.lang.NullPointerException Foo “” ccstr
PrintVtableStats print vtables stats at end of run false bool
IgnoreLockingAssertions disable locking assertions (for speed) false bool
VerifyLoopOptimizations verify major loop optimizations false bool
CompileTheWorldIgnoreInitErrors Compile all methods although class initializer failed false bool
TracePhaseCCP Print progress during Conditional Constant Propagation false bool
TraceLivenessQuery Trace queries of liveness analysis information false bool
CollectIndexSetStatistics Collect information about IndexSets false bool
TraceCISCSpill Trace allocators use of cisc spillable instructions false bool
TraceSpilling Trace spilling false bool
CountVMLocks counts VM internal lock attempts and contention false bool
CountRuntimeCalls counts VM runtime calls false bool
CountJVMCalls counts jvm method invocations false bool
CountRemovableExceptions count exceptions that could be replaced by branches due to inlining false bool
ICMissHistogram produce histogram of IC misses false bool
PrintClassStatistics prints class statistics at end of run false bool
PrintMethodStatistics prints method statistics at end of run false bool
TraceOnStackReplacement Trace on stack replacement false bool
VerifyJNIEnvThread Verify JNIEnv.thread == Thread::current() when entering VM from JNI false bool
TraceTypeProfile Trace type profile false bool
MemProfilingInterval Time between each invocation of the MemProfiler 500 intx
AssertRepeat number of times to evaluate expression in assert (to estimate overhead); only works with -DUSE_REPEATED_ASSERTS 1 intx
SuppressErrorAt List of assertions (file:line) to muzzle “” ccstr
HandleAllocationLimit Threshold for HandleMark allocation when +TraceHandleAllocation is used 1024 uintx
MaxElementPrintSize maximum number of elements to print 256 intx
MaxSubklassPrintSize maximum number of subklasses to print when printing klass 4 intx
ScavengeALotInterval Interval between which scavenge will occur with +ScavengeALot 1 intx
FullGCALotInterval Interval between which full gc will occur with +FullGCALot 1 intx
FullGCALotStart For which invocation to start FullGCAlot 0 intx
FullGCALotDummies Dummy object allocated with +FullGCALot, forcing all objects to move 32*K intx
DeoptimizeALotInterval Number of exits until DeoptimizeALot kicks in 5 intx
ZombieALotInterval Number of exits until ZombieALot kicks in 5 intx
ExitOnFullCodeCache Exit the VM if we fill the code cache. false bool
CompileTheWorldStartAt First class to consider when using +CompileTheWorld 1 intx
CompileTheWorldStopAt Last class to consider when using +CompileTheWorld max_jint intx
diagnostic
UnlockDiagnosticVMOptions Enable processing of flags relating to field diagnostics trueInDebug bool
LogCompilation Log compilation activity in detail to hotspot.log or LogFile false bool
UnsyncloadClass Unstable: VM calls loadClass unsynchronized. Custom classloader must call VM synchronized for findClass & defineClass false bool
FLSVerifyAllHeapReferences Verify that all refs across the FLS boundary are to valid objects false bool
FLSVerifyLists Do lots of (expensive) FreeListSpace verification false bool
FLSVerifyIndexTable Do lots of (expensive) FLS index table verification false bool
VerifyBeforeExit Verify system before exiting trueInDebug bool
VerifyBeforeGC Verify memory system before GC false bool
VerifyAfterGC Verify memory system after GC false bool
VerifyDuringGC Verify memory system during GC (between phases) false bool
VerifyRememberedSets Verify GC remembered sets false bool
VerifyObjectStartArray Verify GC object start array if verify before/after true bool
BindCMSThreadToCPU Bind CMS Thread to CPU if possible false bool
CPUForCMSThread When BindCMSThreadToCPU is true, the CPU to bind CMS thread to 0 uintx
TraceJVMTIObjectTagging Trace JVMTI object tagging calls false bool
VerifyBeforeIteration Verify memory system before JVMTI iteration false bool
DebugNonSafepoints Generate extra debugging info for non-safepoints in nmethods trueInDebug bool
SerializeVMOutput Use a mutex to serialize output to tty and hotspot.log true bool
DisplayVMOutput Display all VM output on the tty, independently of LogVMOutput true bool
LogVMOutput Save VM output to hotspot.log, or to LogFile trueInDebug bool
LogFile If LogVMOutput is on, save VM output to this file [hotspot.log] “” ccstr
MallocVerifyInterval if non-zero, verify C heap after every N calls to malloc/realloc/free 0 intx
MallocVerifyStart if non-zero, start verifying C heap after Nth call to malloc/realloc/free 0 intx
VerifyGCStartAt GC invoke count where +VerifyBefore/AfterGC kicks in 0 uintx
VerifyGCLevel Generation level at which to start +VerifyBefore/AfterGC 0 intx
UseNewCode Testing Only: Use the new version while testing false bool
UseNewCode2 Testing Only: Use the new version while testing false bool
UseNewCode3 Testing Only: Use the new version while testing false bool
SharedOptimizeColdStart At dump time, order shared objects to achieve better cold startup time. true bool
SharedSkipVerify Skip assert() and verify() which page-in unwanted shared objects. false bool
PauseAtStartup Causes the VM to pause at startup time and wait for the pause file to be removed (default: ./vm.paused.) false bool
PauseAtStartupFile The file to create and for whose removal to await when pausing at startup. (default: ./vm.paused.) “” ccstr

 
6,423

我们为什么要移民

Posted by David on Jul 14, 2010 in 工作

David要求写这个topic,好吧。

我们无法决定我们出生之前的所有所有。。。。。。。

当我们慢慢长大,慢慢有思想,慢慢了解自己生活的环境,慢慢了解这个世界之后,我们有机会决定将来的日子要怎么过。

我们爱自己,爱我们的家人,爱我们的朋友,爱我们彼此,爱我们所在的时间、空间,所有的这些才形成了现在的我们。

移民这个词容易让人产生误解,其实就是从一个地儿到另一个地儿生活。像David从山西到北京上学工作,由于我们有户籍制度,从山西户口变成北京户口,其实这本身也算一种移民。这么来想,从中国移民到美国,到英国,到加拿大,到澳大利亚,到新西兰,到。。。。。。。。。也就是一件单纯的事情了。换个环境换个城市,简单理解就是移民啦。

要说我们为什么移民,得先说说制造我们的人,他们是不是也经历过移民?

妈妈从出生到现在一直在一个城市里生活,她对那里很熟悉,有自己的事业,有自己的社交圈,尽管她经常抱怨那个地方,处处都让她很不满意,但是她不愿意移民到其他城市。

爸爸出生在农村,家里穷的叮当响,为了一个简单的理由:能吃饱饭,于是15岁的时候义无反顾的参了军,从此以后,果然能吃饱饭了,籍此开始了移民的征程。爸爸转业的时候移民到了妈妈所在的城市,于是就有了我。。。。。。。。

综上所述

爸爸移民的理由很简单:1,吃饱饭;2,妈妈

妈妈不移民的理由也很简单:爸爸,这个地方有她的一切

现在我要登场了

呱呱坠地的时候甚至连自己是什么东东都不知道,就这样在那个出生的地方度过了童年和少年。大概是从初三的时候开始被动也好,主动也好知道自己奋斗的目标是考上好高中,因为只有考上好高中才能考上好大学,至于大学是个什么玩意儿我也说不清,据说上了大学就不用愁工作了,有工作才能有钱赚。现在想想,初中的时候就想这么远了,真是不容易。等我真正读了高中,我就知道自己即将要离开这个我生活了十几年的小地方了。不过当时我可没意识到这就是移民。我一直觉得要在新的环境生活至少1年以上才可以算做移民,所以短暂的旅行不做记录。

18岁那年,带着兴奋、激动和不安来到了北京,从来没有离开过父母这么远,这么久,所以望着爸妈送我到校后离开的背影,我哭成了泪人。小孩子是感情比较淡薄,特别是对自己的父母,没过2周,我就被新鲜的新生活给深深吸引了,早把父母忘在一边了。

18岁移民北京的理由也很简单:考首都的大学,将来不愁工作

这一待就是10年,这10年是过的最快的10年,比云霄飞车还快!!我在北京有自己的事业,有自己的社交圈,有David,生活也过的有滋有味,我们很会苦中作乐。

——————困了,先睡觉,待续

在这10年里,我们渐渐的听说了一些事,我们的心蠢蠢欲动了。。。。。。。。。

听说有些地方,普通职员的月收入是3000块,他们那儿4居室的小别墅售价是300000,据说还是永久产权,10年不吃不喝就可以买的起啦。我们在北京月收入也是3000块,80平米的房子是1200000,也不是永久属于我,不吃不喝我要40年才可以付得起,好恐怖

听说有些地方,生小孩是可以随便生几胎的,而且据说还可以领钱,那里对于喜欢小孩的我们简直就是天堂。我已经想好了,2男1女是最低目标。

听说有些地方,小朋友读公立小学、中学是完全免费的。那我这3孩子上学问题我可以不用担心了,要知道这可是一笔相当大的开销呢!想当年,老娘我读初中光择校费这就花了1500RMB,后来一时贪玩,花了老妈9000RMB银子,消费了老爸好几层面子后才好不容易进去据传最牛的高中。读个书可真是劳民伤财一件事儿啊!要是真像听说的那样有这等好地方,那我一定毫不犹豫搬过去。

 
15,337

Hibernate source code, How it works

Posted by David on Jul 13, 2010 in 工作

Hibernate Analyze
1. Start. How Hibernate load all these configuration files.
We will use common code to build a Hibernate SessionFactory before Spring.

SessionFactory sf = new Configuration().config().buildSessionFactory();
Session s = sf.openSession();

What happened back these two line code?
Hibernate will load the configuration files, parse them and initialize these configuration to the runtime data structure.
Firstly, we will have a global configuration file like that


"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


org.hibernate.dialect.Oracle10gDialect true=1 false=0 false org.hibernate.cache.EhCacheProvider true

ehcache-rhapsody.xml true true

Hibernate will use class Configuration to maintain some metadata. When we initialize a Configuration instance, we create couples of HashMap to keep the metadata. The configure method will parse the session factory configuration files like we show above. For the properties attribute, Configuration will parse them and add them into an instance field called properties and this field will be used when a SessionFactory instance is built.

After that, Hibernate will parse other attributes whose names are not property. I will describe some important attributes and how they are parsed as part of metadata.

Firstly, Hibernate will parse the mapping element, that means it will find mapping file from the class path and do the parsing. This phase include lots of code, I will analyze its details.

Just ignore the mapping analyze.

1). class-cache
We usually don’t need to config this element, since we always config these second level cache in the mapping file.

else if ( “class-cache”.equals( subelementName ) ) {
String className = subelement.attributeValue( “class” );
Attribute regionNode = subelement.attribute( “region” );
final String region = ( regionNode == null ) ? className : regionNode.getValue();
boolean includeLazy = !”non-lazy”.equals( subelement.attributeValue( “include” ) );
setCacheConcurrencyStrategy( className, subelement.attributeValue( “usage” ), region, includeLazy );
}

2). Collection-cache

This element is similar like class-cache.

3).listener
Hibernate are based event listener. For example, if you save a data in database, Hibernate will call a listener to fulfill this task. There are couples of listeners used for special task. In configuration, a field named enventListners will hold these listeners. There are different Listeners and categories. eventListeners maintains there categories and prepare an Array per category. When parsing the listener, Hibernate will put these listeners into the proper array by using reflection.

4).Event

2. How to load all mapping files.
The most verbose and difficult loading is the mapping file. Five types can be used for loading. There are “resource”, “file”, “jar”,”package” and ”class”. Finally all resource will be connected with an InputStream. An Object called mapping will be used for storing the parsed result.

2.1) Parsing hibernate-mapping element.
Element hibernate-mapping is the root element of the mapping file. It contains some class-level properties. Such as default-access etc.
Then turn to Children element.
The first one is filter-def. This element is used to define a filter of collections or the class when do an assocatiated getting. The Mapping class has a Map used for holding the definitions of filters. For every entry, the key is the name of filter and the value is the filter definitions which include name, condition and a map of parameters.

The second is typedef. The same as filter-def, it also has name, class, and a map containing the parameters. After that, Hibernate will parse class element, it has lots of children elements. So describe it maybe a very tough work. A Map field named classes in Mapping object will hold all the classes from the parsing. It uses entity_name as the key.

2.2) parsing class
Although it’s part of hibnernate-mapping, we still make a separate portion for it.
The representation of a class in Hibernate is PersistentClass with its sub classes RootClass and SubClass. Firstly, I will describe the work flow that how to parsing the xml and compose a RootClass. Attribute ‘lazy’ will be parsed, if it is not set. Default lazy will be set. This attribute can be config as the attribute of hibernate-mapping element. The default is true. PersistentClass will hold this property as a field. Next attribute is ‘entitiy-name’; we can set this attribute, if not. The qualified class name will be used as the entity-name. Similarly, the PersistenceClass will also hold it as a field.
Hibernate can deal with class use three different representations; there are POJO, DOM4j and Map. We usually just use POJO representation, so just describe POJO.
The name attribute represents the class name of the entity. Next attribute is proxy. It’s the Interface we use when we need to make a proxy for lazy init. So if this attribute is set, in other word, it’s not null. It means that the lazy=true is set. Even you set the lazy=false in class element. Also if you set lazy=true and not set proxy, Hibernate will use the class itself as the proxy interface.
Next will parse a special attribute named ‘tuplizer’, you can config a specific class name for the model. It used for representing the proper entity model. See Tuplizer for the details. This interface includes some methods including how to get properties, instant a new entity and so on. So it a extend point, you can define your own entity mode and implement this interface to tell hibernate how to process the entity. Also Persistent class will have a map for storing this.

Then Hibernate will continue to parse other properties. I will describe that one by one. Meanwhile, the data structure of these attributes in Persistent class will also be described.
1). discriminator-value
When we persist a class hierarchy using one table per hierarchy strategy, we will set this property for one class. Class will use this attribute to identify itself. PersistentClass has a field to hold it. If it is not set, class name will be used as discriminator value.

2).dynamic-update
If we set this field true, only some updated fields are included when we using update statement to update the data in database. Default value is false. That means Hibernate will update all the fields by default. That’s no problem except you have a very big object with lots of fields.

3). dynamic-insert
Same as 2).

4). import
Mapping will hold this config, it’s still a map.

5). batch-size.
PersistentClass will hold this property. I think it’s an import attribute. Default is -1 if you not set value to it.

6). Select-before-update
Specifies that Hibernate should never perform an SQL UPDATE unless it is certain that an object is actually modified. In certain cases (actually, only when a transient object has been associated with a new session using update()), this means that Hibernate will perform an extra SQL SELECT to determine if an UPDATE is actually required. Default is false. PersistentClass will use a field to hold it.

7).optimistic-lock
It’s the famous Optimistic-lock. Three models will be used version/timestamp, dirty, all snapshot.

8).persister
It’s another extend point. You can implement your custom PersistClass. Maybe it’s a tough work.
PersistentClass will hold it.

9).abstract
Used to mark abstract superclasses in hierarchies. PersistentClass will hold it.

There are some sub elements of class element. So We will describe these elements. Hibernate3 can use custom SQL statements for create, update, and delete operations. The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags , , and
override these strings. Hibernate use this to invoke the procedure. Please reference Hibernate reference 16.3 to learn the details. That means Hibernate can invoke database procedure.
Another element is loader.

After that, Hibernate parse the ‘synchronize’ element. This element can used when mapping a physical or a logic view to a entity. It identifies the base tables and will auto-flush to the tables.
PersistentClass maintains a set named synchronizedTables, add every table names in this set.

Above are the common attributes and elements that mean all PersistenceClass including RootClass and SubClass would have these elements. And Following elements just occur in RootClass.

Attributes:
1). schema:
Maybe a default schema has already been set on hibernate configuration file. If you don’t set value in the mapping file, the default value will be used. RootClass will not hold it directly.

2). catalog
Same as schema.

After parsing these two attributes, Hibernate will create a Table object and add it to the Mapping object instance.

标签:

 
6,385

我们为什么要移民

Posted by David on Jul 2, 2010 in 工作

Emma, Please post a new article for this topic. I think it’s a good topic and many people concern it. And also it’s very useful for the people who have not made the decision.

 
6,757

谈谈澳洲的最低工资

Posted by David on Jul 2, 2010 in 工作

最近,我们各个省市都在纷纷上调各地的最低工资,有些省甚至上调幅度超过30%。作为一个热门的,受人关注的话题与现象,我们也来为即将或者考虑去澳洲学习 生活 以及工作的人关注一下澳洲的最低工资制度。

Min hourly pay rises above $15

Australia’s 1.4 million minimum wage workers will earn $15 an hour from today for the first time.

Cleaners, hospitality staff, and shop assistants will take home $570 a week following an industrial ruling.

Fair Work Australia’s decision last month to approve a $26 weekly pay increase will see hourly wages climb to $15 for the first time.

Middle-income earners are also set to benefit from today with people on a $50,000 salary in line for a $450 a year tax cut.

澳洲也是最近提高了最低工资水平。

澳洲公平工作委员会(Fair Work Australia)上个月刚刚批准了最低工资上涨26澳元每周,达到每小时15元。

澳大利亚有大约140万工人领取最低的工资,他们的工资是每小时15澳元,合成人民币大概是90多元。这样他们每周大概收入570澳元,合人民币3000多元。中等收入的人也会据此受益,以50000元的年收入计算,每年将少缴纳450澳元的税。

 
7,855

My first article on the site

Posted by David on May 27, 2010 in 工作

Hi, My name is David. I will write some articles on Java, which is a programming language.

 
6,559

ANU students win world legal competition

Posted by emmali on Apr 2, 2010 in 工作

The victorious ANU Jessup Moot team (left to right): Sneha  Rangnath, Sam Thorpe, Ellen Chapple, Sarah Lynch and Rohan Kapur.
The victorious ANU Jessup Moot team (left to right): Sneha Rangnath, Sam Thorpe, Ellen Chapple, Sarah Lynch and Rohan Kapur.

Law students from The Australian National University have taken out first place in an international legal competition held in Washington.

One hundred and twenty-seven teams from 76 countries met in the US capital over the last week for the world final of the Jessup International Law Moot Court Competition.

The Jessup Moot is the oldest, most prestigious, and most globally extensive of all international law student competitions – virtually the ‘world cup’ of international mooting. The students presented oral and written arguments on a hypothetical international law case to a simulated International Court of Justice.
This year, the problem addressed ‘the right to self-determination and the lawfulness of measures taken to protect the economic resources of a state.’

The ANU team members were Ellen Chapple, Rohan Kapur, Sarah Lynch, Sneha Rangnath and Sam Thorpe. The group was coached by Senior Lecturer from the ANU College of Law, Wayne Morgan, and was supported in Washington by Faculty Adviser Jon Lovell.

“The Jessup mooting competition has been an invaluable experience,” said team member Sarah Lynch. “We have all learnt important skills which will put us in good stead for any career path we choose. The competition has honed our teamwork and research skills, as well as our advocacy and competition skills.”

The team from the ANU College of Law was runner-up in the Australian leg of the competition, held in Canberra in February. This meant it progressed to the world final, where the team vanquished the winner of the Australian round – the University of Western Australia – and went on to defeat one of the highest ranked US law schools, Columbia University, in the grand final.

The Dean of the ANU College of Law, Professor Michael Coper, said the students deserved the strongest congratulations for their success.

“To win the Jessup Moot is the pinnacle of international success, and a demanding benchmark that demonstrates that ANU law students are amongst the best in the world,” Professor Coper said. “This is reinforced by the consistent success of ANU law students in other international competitions, such as the Japanese Arbitration and Negotiation Moot. I pay the highest tribute to the students on this occasion, as well as to their coaches and generally to the quality of the legal education they receive in the ANU College of Law.”

The Jessup International Law Moot Court Competition is sponsored by the US law firm White & Case and is organised by the International Law Students Association. ANU previously won the international final of the Jessup Moot in 1981 and was runner up in 1998. Some members of those teams are now ANU academics, including Tom Faunce and Kevin Boreham.

上述新闻来自澳大利亚国立大学官方网站:http://news.anu.edu.au/?p=2050


恭喜国立大学学生获得第一名!!


Philip C. Jessup国际模拟法庭大赛(英文:Philip C. Jessup International Law Moot Court Competition ),简称JESSUP,是目前世界上最大规模、最高声望的模拟法庭竞赛,每年都吸引来自80多个不同国家的500多所法学院参加比赛。其竞赛内容是模拟在 国际法院面前进行国家间纠纷的诉讼。

JESSUP国际模拟法庭大赛的名称是命名自曾就职于国际法院国际法院的Philip Caryl Jessup。该竞赛现由国际法学院学生联盟(International Law Students Association)主办。

竞 赛地点

该竞赛的国际竞赛回合(决赛)一般于每年四月的第一个星期于美国华盛顿特区举办。这一比赛时间的安排是为了与每年一度的美国国际法协会大会同时举 行。

竞赛形式

这一比赛的主要形式是对一个模拟的国际法案件在国际法庭面前进行诉讼。假设的案件一般是关于国际法问题。例如,最近机场比赛的案件主要包括国际司法 管辖权,国际刑事法庭,国际婚姻法,人权等问题。

每支参赛队一般包括五名参赛者(最少两名)。每支参赛队都要先代表原告进行诉讼,再反过来代表被告进行诉讼,并且为原被告双方做出书面的备忘录。每 个回合中,两支参赛队伍经过随即选择,分别代表原被告一方进行诉讼,有时会由另外一支参赛队伍出任法庭成员。

该比赛对于参赛队的组织形式没有特别的规定。有时候,一支参赛队可能由两名选手代表原告进行口头辩论,再选出两名代表被告,而第五名只是作为记录员 和候补选手,并提供一些资料和研究支持。有时候,一支参赛队可能一共只有两个或者三个人参与口头辩论,这样至少有一个人会既代表原告,之后又代表被告。

此外,大部分参赛队还有一名教练。教练一般在竞赛开始一年前就开始帮选手进行准备和训练。教练一般由大学的国际法教授或者以前的Jessup选手来 担任。

参赛队的选拔

在国际竞赛回合,一个国家一般拥有一到两个代表队。因此,大部分国家会在本国举办预选赛来选拔出最优秀的队伍代表该国到华盛顿特区参加比赛。例如, 在加拿大和俄罗斯,各大学首先要参加由White & Case律师事务所赞助举办的国内比赛⑴。其实,Jessup的主办方Shearman & Sterling律师事务所除了赞助在华盛顿特区举办的国际竞赛回合⑵,也会赞助一些国内级别的选拔赛。

考虑到最终的决赛是用英语进行的,而且任何希望用其他语言进行比赛的队伍都需要自己提供翻译,因此大部分国家的国内预选赛都是用英语进行的。各国国 内比赛的赢家将会代表本国参加在华盛顿特区的决赛。

历史上的冠军

2009年JESSUP竞赛的最终冠军是哥仑比亚的安地斯大学(University of the Andes)。

新加坡国家大学曾获得奖项次数最多(四次冠军,七次亚军)。

法国的巴黎第一大学(Unversite de Paris I)于1992年获得冠军,这是历史上第一个获得冠军的母语非英语国家的大学。

在最近11年里(2000-2010),来自澳大利亚大学的代表队正在占据优势,其获得了四次冠军。分别是:

2010年—–澳大利亚国立大学

2007年—-悉尼大学

2005年—-昆士兰大学

2003年—-西澳大学

2000年—-墨尔本大学

上述信息来自维基百科

 
6,249

Facts About Victoria, Australia

Posted by emmali on Nov 15, 2009 in 工作

刚在维州官网上看到关于维多利亚的介绍,比较全面和详细。考虑到老外的GOV可信度相对较高,所以我摘录一部分,供大家参考。呵呵。。。。。。。

♣ Climate

维州气候比较温和适中,四季分明。冬季平均最高温度为14摄氏度,夏天平均为25摄氏度。相对于南部地区,北部地区更干燥和温暖。

♣ Geography

维多利亚州位于澳洲大陆的东南角,是最小的陆地州—维州大小相当于英国。境内有迷人沙滩、广袤田园、也有雪地和人类还未触及的丛林。

♣ People, culture and language

大约有500万居民生活在维多利亚州—澳大利亚人口第二大州。超过70%的维多利亚州人居住在墨尔本,维多利亚州的首府城市。维多利亚州是移民的首选居住地之一,居民来自全世界200多个国家,讲超过180种语言和方言,多元的文化就此体现。几乎1/4的维州人口出生在海外—43.6%的人口出生在海外或者其父母有一方是出生在其它国家。大约有10万国际留学生在维多利亚州求学。英语在这里是官方语言,但是有超过20%的维州人口和几乎30%的墨尔本人口都会讲除英语外的第二种语言。

♣ Economy and industry

维州经济占澳洲全国经济的25%,并在过去10年一直以3.9%的速度在持续增长。

农业:维州出产的农产品占全澳洲的约1/4,这些农产品包括羊毛、牛肉、农作物,烟草、水果、蔬菜和乳酪产品。

能源:维多利亚州是世界上最大的褐煤储藏地之一,几乎全州所有的电力都是靠他来生产。同时,维多利亚州的石油和天然气储备也非常丰富,全澳洲一半的石油产品产自于此。澳大利亚很多煤炭和矿业加工公司的总部都设在墨尔本,另外墨尔本也是很多矿业项目管理、研究和开发的中心。

制造业:维多利亚州是澳洲制造业最发达的地区之一,约34%的澳洲制造业雇员受雇于维州。制造业包括汽车制造、食品加工、纺织业、制衣业、制鞋业、制纸业、石化产品制造、信息技术和通信以及飞机制造业等。

国际贸易:维州最大的出口市场是新西兰、中国、美国、日本和韩国。汽车、铝制品、乳酪产品、医药品、羊毛和肉类是维州主要的出口产品。墨尔本拥有全澳洲最繁忙的货运港和最大的集装箱港。

旅游业:维州大约有6.6%的劳动力从事旅游业。维多利亚州每年接待大约140万的国际和17.3万的国内游客。墨尔本国际机场提供8条国内航线和30多条国际航线,方便人们出行。

 

to be continued

 
6,086

悉尼大学–Faculty of Education and Social Work

Posted by emmali on Oct 21, 2009 in 工作

悉尼大学

悉尼大学成立于1850年,是澳大利亚最古老的大学,也是澳大利亚“八大”名校之一。英国泰晤士报2009年世界大学最新排名中,悉尼大学名列36位,在人文科学教学和研究领域,悉尼大学名列全世界前20强。每年悉尼大学都能获得最多的澳大利亚研究基金。

 

悉尼大学–Faculty of Education and Social Work

是澳洲提供教育学和社区工作课程最大的学院之一;

所有的课程都获得新南威尔士州教师协会以及澳大利亚社区工作协会的认证;

悉尼大学是在1911年开设教育学专业,在1986年就成立了教育学院。悉尼大学教育与社区工作学院以其优异的教学质量和研究实力得到全世界范围的广泛认可;

目前,本科在读学生为2174人,本科国际学生为72人,国际学生所占比例为8%;硕士在读学生为538人,国际学生所占比例为33%;

 

学院专业

本科开设的专业有:教育学(幼儿、小学、中学、)、社区工作,雅思入学要求为7.5

硕士开设的专业有:教育领导管理、TESOL、特殊教育、教育心理学、研究方法、教练培训、社区工作,雅思入学要求为6.5

另外学院还提供研究类硕士和博士的相关课程

热门课程:

1,Graduate Certificate in (TEFL):

适合人群:国内有教师资格或者至少6个月英语教学工作的老师

雅思要求:5.5

学费:澳币10800

Master of Education (TESOL)

适合人群:本科教育学专业毕业或者读完GC in (TEFL)

雅思要求:6.5

学费:澳币21600

2,Master of Teaching and Graduate Bachelor of Teaching

适合人群:国内本科毕业,想获得澳洲教师资格成为老师

雅思要求:7.5

学费:5.6万澳币左右

 
6,591

2009年泰晤士报的世界大学新排名

Posted by emmali on Oct 21, 2009 in 工作

好多学生都等着2009年新的世界大学排名早日出炉,好借此来帮助自己拿下最后的主意,是选悉尼还是墨尔本。呵呵。。。。。

我们来看看新出炉的排名和前面我整理过的2008有什么不同:

排在前5位的是:哈佛、剑桥、耶鲁、伦敦大学学院、伦敦帝国学院和牛津并列第五。英国的学校今年很强势,不知道是不是和泰晤士报有关,o(∩_∩)o…玩笑了

澳洲的整体实力如何呢?

第17位:澳大利亚国立大学(2008年16位);

第36位:悉尼大学(2008年37位);

第36位:墨尔本大学(2008年38位);

第41位:昆士兰大学(2008年43位);

第45位:莫纳什大学(2008年47位);

第47位:新南威尔士大学(2008年45位);

第49位:清华大学(2008年56位);

第52位:北京大学(2008年50位);

第81位:阿德莱德大学(2008年106位);

第84位:西澳大学(2008年83位);

第103位:复旦大学(2008年113位);

第153位:上海交通大学(2008年144位);

第154位:中国科学技术大学(中科大)(2008年141位);

第168位:南京大学(2008年143位);

第189位:麦考瑞大学(2008年182位);

信息来源:http://www.timeshighereducation.co.uk/Rankings2009-Top200.html

Copyright © 2012 Emmali's Blog All rights reserved. Theme by Laptop Geek.