#include <coherence/lang/ObjectCountHeapAnalyzer.hpp>
Inherits Object, and HeapAnalyzer.
This heap analyzer has next to no CPU or memory costs, there is a single 64 bit counter which is updated using the non-blocking compare-and-set operations. It is well suited for performance sensitive production envrionments.
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.
| ||||
|
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 void | toStream (std::ostream &out) const | |||
| Output a human-readable description of this Object to the given stream. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toStream method, to output Objects. If a manged String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::Handle hs = COH_TO_STRING(vKey << " = " << vValue);
| ||||
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.
| ||||
Protected Attributes | ||||
| coherence::native::NativeAtomic64 | m_cObjects | |||
| The object count. | ||||
Classes | ||||
| class | Snapshot | |||
| Snapshot containging the object count. More... | ||||
| ObjectCountHeapAnalyzer | ( | ) | [protected] |