< prev index next >

src/hotspot/share/memory/heap.hpp

Print this page

        

*** 215,222 **** --- 215,297 ---- public: // Debugging void verify() PRODUCT_RETURN; void print() PRODUCT_RETURN; + + //---< BEGIN >--- 8198691: CodeHeap State Analytics. + + public: + enum compType { + noComp = 0 // must be! due to initialization by memset to zero + , c1 + , c2 + , jvmci + , lastComp + }; + + enum blobType { + noType = 0 // must be! due to initialization by memset to zero + // The nMethod_* values correspond 1:1 to the CompiledMethod enum values. + , nMethod_inuse // executable. This is the "normal" state for a nmethod. + , nMethod_notused // assumed inactive, marked not entrant. Could be revived if necessary. + , nMethod_notentrant // no new activations allowed, marked for deoptimization. Old activations may still exist. + // Will transition to "zombie" after all activations are gone. + , nMethod_zombie // No more activations exist, ready for purge (remove from code cache). + , nMethod_unloaded // No activations exist, should not be called. Transient state on the way to "zombie". + , nMethod_alive = nMethod_notentrant // Combined state: nmethod may have activations, thus can't be purged. + , nMethod_dead = nMethod_zombie // Combined state: nmethod does not have any activations. + , runtimeStub = nMethod_unloaded + 1 + , ricochetStub + , deoptimizationStub + , uncommonTrapStub + , exceptionStub + , safepointStub + , adapterBlob + , mh_adapterBlob + , bufferBlob + , lastType + }; + + private: + void prepare_StatArray(outputStream *out, size_t nElem, size_t granularity, const char* heapName); + void prepare_FreeArray(outputStream *out, unsigned int nElem, const char* heapName); + void prepare_TopSizeArray(outputStream *out, unsigned int nElem, const char* heapName); + void prepare_SizeDistArray(outputStream *out, unsigned int nElem, const char* heapName); + void discard_StatArray(outputStream *out); + void discard_FreeArray(outputStream *out); + void discard_TopSizeArray(outputStream *out); + void discard_SizeDistArray(outputStream *out); + + void update_SizeDistArray(outputStream *out, unsigned int len); + + const char* get_heapName(); + unsigned int findHeapIndex(outputStream *out, const char *heapName); + void get_HeapStatGlobals(outputStream *out, const char *heapName); + void set_HeapStatGlobals(outputStream *out, const char *heapName); + + void printBox(outputStream* out, const char border, const char* text1, const char* text2); + void print_blobType_legend(outputStream *out); + void print_space_legend(outputStream *out); + void print_age_legend(outputStream *out); + void print_blobType_single(outputStream *ast, u2 /* blobType */ type); + void print_count_single(outputStream *ast, unsigned short count); + void print_space_single(outputStream *ast, unsigned short space); + void print_age_single(outputStream *ast, unsigned int age); + void print_line_delim(outputStream *out, bufferedStream *sst, unsigned int ix, unsigned int gpl); + void print_line_delim(outputStream *out, outputStream *sst, unsigned int ix, unsigned int gpl); + blobType get_cbType(CodeBlob* cb); + + public: + void discard(outputStream *out); + void aggregate(outputStream *out, const char* granularity); + void print_usedSpace(outputStream *out); + void print_freeSpace(outputStream *out); + void print_count(outputStream *out); + void print_space(outputStream *out); + void print_age(outputStream *out); + void print_names(outputStream *out); + + //---< END >--- 8198691: CodeHeap State Analytics. }; #endif // SHARE_VM_MEMORY_HEAP_HPP
< prev index next >