|
The following inspections are provided by JProfiler:
- Custom filter [Custom inspections]
Filter all objects in the current object set with a code snippet. Return true if an object should be added to the new object set and false if it should be discarded.Note: In the reference view, you can apply a filter to a selected outgoing chain of references.
Configuration options: - Filter script
The script that decides whether an object should be part of the new object set or not. The script is passed a currentObject parameter. If you return true, the object will be retained, otherwise it will be discarded.
- Custom grouping [Custom inspections]
Group the current object set with a code snippet. Return the key for each object as a java.lang.String object. Objects with the same key will be in the same group.After the inspection is calculated, you will see a statistics table at the top of all heap walker view where you can select each group and analyze its members separately.
Configuration options: - Grouping script
The script that returns the group name of the group that the object should be part of. The script is passed a currentObject parameter. If all objects in the current object set are of the same class, the parameter is typed, so you will get code completion for the parameter. If you return null, the object will be retained, otherwise it will be added to the group with the name of the returned string value.
- Duplicate strings [Duplicate objects]
Find duplicate java.lang.String objects in the current object set.After the inspection is calculated, you will see a statistics table at the top of all heap walker view where you can select each duplicate string value and analyze the corresponding string objects separately. Note: If no java.lang.String objects are contained in the current object set, the inspection will return the empty object set.
Configuration options: - Minimum length
The minimum size as an integer value. The default size is 20.
- Duplicate primitive wrappers [Duplicate objects]
Find duplicate primitive wrapper objects like java.lang.Integer in the current object set.After the inspection is calculated, you will see a statistics table at the top of all heap walker view where you can select each duplicate primitive value and analyze the corresponding wrapper objects separately. Note: If no wrapper objects of the selected type are contained in the current object set, the inspection will return the empty object set.
Configuration options: - Primitive wrapper type
The primitive type for which the inspection will be calculated. One of "Boolean,Byte,Character,Double,Float,Integer,Long,Short".
- Duplicate arrays [Duplicate objects]
Find duplicate arrays in the current object set.After the inspection is calculated, you will see a statistics table at the top of all heap walker view where you can select each duplicate array value and analyze the corresponding arrays separately. Note: If no arrays of the selected type are contained in the current object set, the inspection will return the empty object set.
Configuration options: - Minimum shallow size in bytes
The minimum size as an integer value. The default size is 100. - Array type
The array type for which the inspection will be calculated. One of "Object,Boolean,Byte,Character,Double,Float,Integer,Long,Short".
- Sparse arrays [Collections & Arrays]
Find object arrays that contain a high percentage of null values.After the inspection is calculated, the object group table will group arrays according to their percentage of null values. There is a cutoff below which no arrays are included in the object set. Note: If no arrays of the selected type are contained in the current object set, the inspection will return the empty object set.
Configuration options: - Minimum shallow size in bytes
The minimum size as an integer value. The default size is 100.
- Arrays with zero length [Collections & Arrays]
Find object arrays whose length is zero. This may be an opportunity to use a null value in order to reduce memory consumption.Note: If no arrays of the selected type are contained in the current object set, the inspection will return the empty object set.
Configuration options: - Array type
The array type for which the inspection will be calculated. One of "Object,Boolean,Byte,Character,Double,Float,Integer,Long,Short".
- Hash maps with bad key distribution [Collections & Arrays]
Find hash maps with a bad distribution of keys. This may be an opportunity to improve the hasCode() method of objects in order to speed up lookups in the map.After the inspection is calculated, the object group table will group hash maps according to their distribution quality. There is a cutoff below which no hash maps are included in the object set. The objects with the highest hash map distribution quality will be at the top.
Configuration options: - Minimum map size
The minimum size as an integer value. The default size is 20.
- Null fields [Reference & field analysis]
Find objects with fields that have a high percentage of null values. These fields could be moved to derived classes or aggregated objects.
- Select weakly referenced objects [Weak references]
Find objects that are referenced through a weak, soft or phantom reference.To analyze the reference paths, go to the "Reference" view after the inspection is calculated and show the path to the garbage collector root for selected objects. This will only work for weak reference types that you have not removed when taking the heap snapshot.
Configuration options: - Weak reference type
The type of the reference for which the inspection will be calculated, one of "Soft reference,Weak reference,Phantom reference,Finalizer reference". - Referenced objects type
The scope of the referenced objects, one of Directly referenced,Both directly referenced and retained,Retained".
- Remove objects retained by weak references [Weak references]
Remove objects that are retained through a weak, soft or phantom reference.This will only work for weak reference types that you have not removed when taking the heap snapshot.
Configuration options: - Weak reference type
The type of the reference for which the inspection will be calculated, one of "Soft reference,Weak reference,Phantom reference,Finalizer reference".
- Select objects referenced by the stack [Stack references]
Find objects that are referenced through a reference from the Java stack.To analyze the reference paths, go to the "Reference" view after the inspection is calculated and show the path to the garbage collector root for selected objects.
Configuration options: - Referenced objects type
The scope of the referenced objects, one of Directly referenced,Both directly referenced and retained,Retained". - Referencing threads
The threads that hold the stack references, either a thread group or a single thread.
- Remove objects retained by stack references [Stack references]
Remove objects that are retained through a reference from the Java stack.
Configuration options:- Referencing threads
The threads that hold the stack references, either a thread group or a single thread.
- Objects referenced by ThreadLocals [Thread locals]
Find objects that are referenced through a ThreadLocal.
Configuration options:- Referenced objects type
The scope of the referenced objects, one of Directly referenced,Both directly referenced and retained,Retained".
- Objects retained by inner class [Reference & field analysis]
Find objects that only referenced implicitly by one of their non-static inner classes. Sometimes this can be the cause of a memory leak.
- Objects with many incoming references [Reference & field analysis]
Find objects that have many incoming references.After the inspection is calculated, the object group table will group instances according to their incoming reference count. There is a cutoff below which no instances are included in the object set. The objects with the most incoming references will be at the top.
- Objects that reference themselves [Reference & field analysis]
Find objects that reference themselves directly. This may be an opportunity to remove a field.After the inspection is calculated, the object group table will group instances and classes according to how many of their (static) fields reference itself. The objects with the most self-references will be at the top.
- Classes with identical names [Classes & Class loaders]
Find classes with the same name that are loaded by different class loaders.After the inspections is calculated, the object group table will show the class names and the counts of how many classes were loaded under that name. The inspection selects java.lang.Class objects, not instances. If you are interested in instances of a particular class,switch to the "Incoming references" view and use the "live instances" reference to select all instances.
- Instances grouped by class loaders [Classes & Class loaders]
Partition all instances by the class loaders that loaded them.After the inspection is calculated, the object group table shows the list of class loaders with their loaded instance counts. If you are interested in seeing the classes rather than the instances, switch to the "Classes" view after the inspection has completed.
- Instances of classes derived from specific base class [Classes & Class loaders]
Find instances that are derived from a selected class or that implement a selected interface.If you are interested in seeing the classes rather than the instances, switch to the "Classes" view after the inspection has completed.
Configuration options: - Class name
The class name for which the inspection will be calculated.
- HTTP session objects [Classes & Class loaders]
Find all HTTP session objects. These are instances that implement javax.servlet.http.HttpSession.This is a convenience inspection and has the same effect as running the "Instances of classes derived from specific base class" inspection with the above interface.
|