#include <coherence/lang/ObjectCountHeapAnalyzer.hpp>
Inherits Object, and HeapAnalyzer.
This heap analyzer has low CPU and memory costs. It is well suited for performance sensitive production environments.
Public Types | ||||
typedef spec::Handle | Handle | |||
ObjectCountHeapAnalyzer Handle definition. | ||||
typedef spec::View | View | |||
ObjectCountHeapAnalyzer View definition. | ||||
typedef spec::Holder | Holder | |||
ObjectCountHeapAnalyzer Holder definition. | ||||
Public Member Functions | ||||
virtual HeapAnalyzer::Snapshot::View | capture () const | |||
Capture a Snapshot of the current state of the heap. Note, when performing captures in a loop, and assigning the captured snapshot to a handle referencing a snapshot, it is advisable to NULL out the handle first, so as to avoid the new snapshot including the "cost" of snapshot it is about to replace.
| ||||
virtual HeapAnalyzer::Snapshot::View | delta (HeapAnalyzer::Snapshot::View vSnap) const | |||
Compute the delta between the supplied Snapshot and the current heap state.
| ||||
virtual int64_t | getObjectCount () const | |||
Return the number of registered objects.
| ||||
virtual int64_t | getImmortalCount () const | |||
Return the number of objects which have been marked as uncollectable.
Return the number of objects which have been marked as uncollectable. | ||||
virtual TypedHandle < const String > | toString () const | |||
Output a human-readable description of this Object to the given stream. Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::View vs = COH_TO_STRING(vKey << " = " << vValue); The COH_TO_STRING macro is also the most common way to implement the toString method. For example:
virtual TypedHandle<const String> Person::toString() const { return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN); }
| ||||
Protected Member Functions | ||||
ObjectCountHeapAnalyzer () | ||||
Create a new ObjectCountHeapAnalyzer. | ||||
virtual void | registerObject (const Object &o) | |||
Register a newly created Object with the system. This method is called automatically by coherence::lang::Object once the Object has finished construction.
| ||||
virtual void | unregisterObject (const Object &o) | |||
Unregister an Object with the system. This method is called automatically by coherence::lang::Object just prior to the deletion of the Object. No new handles or views may be created to the object.
| ||||
virtual void | registerImmortal (const Object &o) | |||
Invoked when an object is deemed to immortal and can never be collected.
Note the specified object will have already been registered via registerObject. | ||||
Protected Attributes | ||||
NativeAtomic64 | m_acObjects [s_cCount] | |||
Array of object counts. | ||||
NativeAtomic64 | m_cImmortals | |||
The immortal object count. | ||||
Static Protected Attributes | ||||
static const size_t | s_cCount | |||
The size of the array of counters. | ||||
Classes | ||||
class | Snapshot | |||
Snapshot containing the object count. More... |
ObjectCountHeapAnalyzer | ( | ) | [protected] |