< prev index next >

src/hotspot/share/prims/jvmti.xml

Print this page
rev 49264 : [mq]: event-only
rev 49265 : [mq]: event3
rev 49266 : [mq]: event4
rev 49267 : [mq]: event5
rev 49268 : [mq]: event6

*** 10351,10363 **** are enabled then the <eventlink id="ClassFileLoadHook"/> events can be posted for classes loaded in the primordial phase. See <eventlink id="ClassFileLoadHook"/>. </description> </capabilityfield> ! <capabilityfield id="can_sample_heap" since="11"> <description> ! Can sample the heap. If this capability is enabled then the heap sampling method <functionlink id="SetHeapSamplingRate"></functionlink> can be called and the <eventlink id="SampledObjectAlloc"></eventlink> events can be enabled. </description> </capabilityfield> --- 10351,10363 ---- are enabled then the <eventlink id="ClassFileLoadHook"/> events can be posted for classes loaded in the primordial phase. See <eventlink id="ClassFileLoadHook"/>. </description> </capabilityfield> ! <capabilityfield id="can_generate_sampled_alloc_events" since="11"> <description> ! Can generate sampled allocation events. If this capability is enabled then the heap sampling method <functionlink id="SetHeapSamplingRate"></functionlink> can be called and the <eventlink id="SampledObjectAlloc"></eventlink> events can be enabled. </description> </capabilityfield>
*** 11538,11570 **** </function> </category> <category id="heap_monitoring" label="Heap Monitoring"> ! <function id="SetHeapSamplingRate" phase="any" num="156" since="11"> <synopsis>Set Heap Sampling Rate</synopsis> <description> ! Set up the allocation system to sample memory at a given average rate via the <paramlink id="sampling_rate"></paramlink> parameter, defined by sampling rate in bytes. The <paramlink id="sampling_rate"></paramlink> will be the average sampling rate in bytes used throughout the execution. ! ! Setting <paramlink id="sampling_rate"></paramlink> to 0 disables the heap sampling. Combined with a <eventlink id="SampledObjectAlloc"/> event, the Java agent can obtain object allocations with a given sample rate. </description> <origin>new</origin> <capabilities> ! <required id="can_sample_heap"></required> </capabilities> <parameters> <param id="sampling_rate"> <jint/> <description> The sampling rate in bytes used for sampling. The sampler will use a statistical approach to provide in average sampling every <paramlink id="sampling_rate"/> allocated bytes. ! Note: a low sampling rate, such as sampling every 1024 bytes, will probably incur a high overhead. Due to the incurred overhead, the sampler should only be used when knowing it may impact performance. On the other hand, sampling however every 1024kB has a far less chance of a high overhead since it will sample 1024 times less than the 1024-byte sampling. </description> --- 11538,11572 ---- </function> </category> <category id="heap_monitoring" label="Heap Monitoring"> ! <function id="SetHeapSamplingRate" phase="onload" num="156" since="11"> <synopsis>Set Heap Sampling Rate</synopsis> <description> ! Set up the allocation system to sample memory allocations at a given average rate via the <paramlink id="sampling_rate"></paramlink> parameter, defined by sampling rate in bytes. The <paramlink id="sampling_rate"></paramlink> will be the average sampling rate in bytes used throughout the execution. ! <p/> ! Setting <paramlink id="sampling_rate"></paramlink> to 0 samples each allocation supported by the system. Combined with a <eventlink id="SampledObjectAlloc"/> event, the Java agent can obtain object allocations with a given sample rate. </description> <origin>new</origin> <capabilities> ! <required id="can_generate_sampled_alloc_events"></required> </capabilities> <parameters> <param id="sampling_rate"> <jint/> <description> The sampling rate in bytes used for sampling. The sampler will use a statistical approach to provide in average sampling every <paramlink id="sampling_rate"/> allocated bytes. ! <p/> ! Passing 0 as a sampling rate provokes a sample per allocation by the system. ! <p/> Note: a low sampling rate, such as sampling every 1024 bytes, will probably incur a high overhead. Due to the incurred overhead, the sampler should only be used when knowing it may impact performance. On the other hand, sampling however every 1024kB has a far less chance of a high overhead since it will sample 1024 times less than the 1024-byte sampling. </description>
*** 13558,13586 **** </description> </param> </parameters> </event> ! <event label="Sampled Object Allocation Trace" id="SampledObjectAlloc" const="JVMTI_EVENT_SAMPLED_OBJECT_ALLOC" num="86" since="11"> <description> Sent when an object is sampled via the <internallink id="heap_monitoring"> Heap Sampling Monitoring system </internallink>. ! Therefore, this event is sent to the user if there is at least one call to ! <functionlink id="SetHeapSamplingRate"></functionlink> with a strictly positive integer value. ! ! The event is sent once the allocation has been done and provides the object, stack trace for the allocation, the thread allocating, the size of allocation, and class. <p/> Typical use cases of this system is to determine where most heap allocation are originating from. Using this in conjunction of weak references and the function <functionlink id="GetStackTrace"></functionlink>, a user can track which objects were allocated from which stacktrace and which are still live during the execution of the program. </description> <origin>new</origin> <capabilities> ! <required id="can_sample_heap"></required> </capabilities> <parameters> <param id="jni_env"> <outptr> <struct>JNIEnv</struct> --- 13560,13595 ---- </description> </param> </parameters> </event> ! <event label="Sampled Object Allocation" id="SampledObjectAlloc" const="JVMTI_EVENT_SAMPLED_OBJECT_ALLOC" num="86" since="11"> <description> Sent when an object is sampled via the <internallink id="heap_monitoring"> Heap Sampling Monitoring system </internallink>. ! <p/> ! By default, the sampling rate used is geometric variable with a 512kb mean, meaning one object every 512k bytes, ! in average, per thread will ! provoke a callback. Each thread having its own internal allocation count, each thread will be sampling ! at the same default rate of 512kb. ! <p/> ! If another sampling rate is required, the user can call ! <functionlink id="SetHeapSamplingRate"></functionlink> with a strictly positive integer value, representing ! the new sampling rate to be used by the default sampler. ! <p/> ! This event is sent once the allocation has been done and provides the object, stack trace for the allocation, the thread allocating, the size of allocation, and class. <p/> Typical use cases of this system is to determine where most heap allocation are originating from. Using this in conjunction of weak references and the function <functionlink id="GetStackTrace"></functionlink>, a user can track which objects were allocated from which stacktrace and which are still live during the execution of the program. </description> <origin>new</origin> <capabilities> ! <required id="can_generate_sampled_alloc_events"></required> </capabilities> <parameters> <param id="jni_env"> <outptr> <struct>JNIEnv</struct>
< prev index next >