The retained size of an object is the object's shallow size plus the shallow size of the objects that are accessible, directly or indirectly, only from this object. The shallow size of a set of objects represents the sum of the shallow sizes of all objects in the set. The shallow size of an array depends on the array length and the type of its elements, whether they are other objects or primitive types. The shallow size of a non-array object depends on the number and type of its fields. The shallow size of an object is the amount of memory allocated to store the object itself, and not taking into account its referenced objects. HPROF format Shallow and Retained Size Shallow Size If the profiler is used to capture a memory snapshot in HPROF format, no object generation or object allocation information will be available. For more details on this process, see Memory Snapshots and Object Generations. When a memory snapshot is taken, the profiler agent automatically increments the object generation number and associates all object instances in that snapshot with the new object generation number. The memory snapshot includes "garbage": objects unreachable from GC roots, but not yet collected, and object pending finalization. Optionally, memory snapshots can be captured in a HPROF format. By default, YourKit capture memory snapshots in its own format. Optionally, a memory snapshot in YourKit format may contain information about object allocations. The snapshot contains information about all loaded classes, all existing object instances, the values of their primitive fields and arrays of primitive types, and references between objects. The memory telemetry information is maintained in a circular buffer in the profiler agent's memory.Ī memory snapshot represents the memory state of the profiled application at the moment the snapshot was captured. YourKit can be used to diagnose several types of memory problems: elevated steady-state level, memory leaks and excessive garbage collection. The 'attach' technique: The profiler agent is loaded into a running JVM without restart, using the "attach" technique.The detailed procedure to configure a JVM for remote profiling is described here: Manually Configure Target JVM for Remote Profiling. Starting the JVM with the agent is recommended, because attaching the agent to a running JVM has limitations in profiling functionality and is not always possible. Manual configuration: the target JVM is started with a configuration that loads the profiler agent.There are two methods to load the profiler agent within the target JVM: Remote profiling is only possible if the application JVM loads the profiler agent. Remote profiling is the situation when the profiled application and the profiler UI run on different machines, and the profiler UI communicates with the profiler agent over the network.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |