Mercurial > hg > graal-compiler
comparison src/share/vm/memory/metaspace.cpp @ 12063:1a8fb39bdbc4
8014659: NPG: performance counters for compressed klass space
Reviewed-by: mgerdin, coleenp, hseigel, jmasa, ctornqvi
author | ehelin |
---|---|
date | Wed, 07 Aug 2013 16:47:32 +0200 |
parents | 740e263c80c6 |
children | 4c84d351cca9 |
comparison
equal
deleted
inserted
replaced
12061:e5003079dfa5 | 12063:1a8fb39bdbc4 |
---|---|
2478 | 2478 |
2479 | 2479 |
2480 size_t MetaspaceAux::_allocated_capacity_words[] = {0, 0}; | 2480 size_t MetaspaceAux::_allocated_capacity_words[] = {0, 0}; |
2481 size_t MetaspaceAux::_allocated_used_words[] = {0, 0}; | 2481 size_t MetaspaceAux::_allocated_used_words[] = {0, 0}; |
2482 | 2482 |
2483 size_t MetaspaceAux::free_bytes(Metaspace::MetadataType mdtype) { | |
2484 VirtualSpaceList* list = Metaspace::get_space_list(mdtype); | |
2485 return list == NULL ? 0 : list->free_bytes(); | |
2486 } | |
2487 | |
2483 size_t MetaspaceAux::free_bytes() { | 2488 size_t MetaspaceAux::free_bytes() { |
2484 size_t result = 0; | 2489 return free_bytes(Metaspace::ClassType) + free_bytes(Metaspace::NonClassType); |
2485 if (Metaspace::using_class_space() && | |
2486 (Metaspace::class_space_list() != NULL)) { | |
2487 result = result + Metaspace::class_space_list()->free_bytes(); | |
2488 } | |
2489 if (Metaspace::space_list() != NULL) { | |
2490 result = result + Metaspace::space_list()->free_bytes(); | |
2491 } | |
2492 return result; | |
2493 } | 2490 } |
2494 | 2491 |
2495 void MetaspaceAux::dec_capacity(Metaspace::MetadataType mdtype, size_t words) { | 2492 void MetaspaceAux::dec_capacity(Metaspace::MetadataType mdtype, size_t words) { |
2496 assert_lock_strong(SpaceManager::expand_lock()); | 2493 assert_lock_strong(SpaceManager::expand_lock()); |
2497 assert(words <= allocated_capacity_words(mdtype), | 2494 assert(words <= allocated_capacity_words(mdtype), |
2569 } | 2566 } |
2570 return capacity * BytesPerWord; | 2567 return capacity * BytesPerWord; |
2571 } | 2568 } |
2572 | 2569 |
2573 size_t MetaspaceAux::reserved_in_bytes(Metaspace::MetadataType mdtype) { | 2570 size_t MetaspaceAux::reserved_in_bytes(Metaspace::MetadataType mdtype) { |
2574 if (mdtype == Metaspace::ClassType) { | 2571 VirtualSpaceList* list = Metaspace::get_space_list(mdtype); |
2575 return Metaspace::using_class_space() ? | 2572 return list == NULL ? 0 : list->virtual_space_total(); |
2576 Metaspace::class_space_list()->virtual_space_total() * BytesPerWord : 0; | |
2577 } else { | |
2578 return Metaspace::space_list()->virtual_space_total() * BytesPerWord; | |
2579 } | |
2580 } | 2573 } |
2581 | 2574 |
2582 size_t MetaspaceAux::min_chunk_size() { return Metaspace::first_chunk_word_size(); } | 2575 size_t MetaspaceAux::min_chunk_size() { return Metaspace::first_chunk_word_size(); } |
2583 | 2576 |
2584 size_t MetaspaceAux::free_chunks_total(Metaspace::MetadataType mdtype) { | 2577 size_t MetaspaceAux::free_chunks_total(Metaspace::MetadataType mdtype) { |
2585 if ((mdtype == Metaspace::ClassType) && !Metaspace::using_class_space()) { | 2578 VirtualSpaceList* list = Metaspace::get_space_list(mdtype); |
2579 if (list == NULL) { | |
2586 return 0; | 2580 return 0; |
2587 } | 2581 } |
2588 ChunkManager* chunk = (mdtype == Metaspace::ClassType) ? | 2582 ChunkManager* chunk = list->chunk_manager(); |
2589 Metaspace::class_space_list()->chunk_manager() : | |
2590 Metaspace::space_list()->chunk_manager(); | |
2591 chunk->slow_verify(); | 2583 chunk->slow_verify(); |
2592 return chunk->free_chunks_total(); | 2584 return chunk->free_chunks_total(); |
2593 } | 2585 } |
2594 | 2586 |
2595 size_t MetaspaceAux::free_chunks_total_in_bytes(Metaspace::MetadataType mdtype) { | 2587 size_t MetaspaceAux::free_chunks_total_in_bytes(Metaspace::MetadataType mdtype) { |