src/share/vm/code/codeCache.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/code/codeCache.cpp	Tue Sep 30 15:03:51 2014
--- new/src/share/vm/code/codeCache.cpp	Tue Sep 30 15:03:50 2014

*** 211,234 **** --- 211,234 ---- // Reserve one continuous chunk of memory for CodeHeaps and split it into // parts for the individual heaps. The memory layout looks like this: // ---------- high ----------- // Non-profiled nmethods // Profiled nmethods ! // Non-nmethods // ---------- low ------------ ReservedCodeSpace rs = reserve_heap_memory(non_profiled_size + profiled_size + non_method_size); ReservedSpace non_method_space = rs.first_part(non_method_size); ReservedSpace rest = rs.last_part(non_method_size); ReservedSpace profiled_space = rest.first_part(profiled_size); ReservedSpace non_profiled_space = rest.last_part(profiled_size); ! // Non-nmethods (stubs, adapters, ...) ! add_heap(non_method_space, "Code Heap 'non-methods'", init_non_method_size, CodeBlobType::NonMethod); ! add_heap(non_method_space, "CodeHeap 'non-nmethods'", init_non_method_size, CodeBlobType::NonMethod); // Tier 2 and tier 3 (profiled) methods - add_heap(profiled_space, "Code Heap 'profiled nmethods'", init_profiled_size, CodeBlobType::MethodProfiled); // Tier 1 and tier 4 (non-profiled) methods and native methods - add_heap(non_profiled_space, "Code Heap 'non-profiled nmethods'", init_non_profiled_size, CodeBlobType::MethodNonProfiled); } ReservedCodeSpace CodeCache::reserve_heap_memory(size_t size) { // Determine alignment const size_t page_size = os::can_execute_large_page_memory() ?
*** 364,374 **** --- 364,374 ---- if (PrintCodeCacheExtension) { ResourceMark rm; if (SegmentedCodeCache) { tty->print("%s", heap->name()); } else { - tty->print("Code Cache"); } tty->print_cr(" extended to [" INTPTR_FORMAT ", " INTPTR_FORMAT "] (" SSIZE_FORMAT " bytes)", (intptr_t)heap->low_boundary(), (intptr_t)heap->high(), (address)heap->high() - (address)heap->low_boundary()); }
*** 818,828 **** --- 818,828 ---- // Use multiple code heaps initialize_heaps(); } else { // Use a single code heap ReservedCodeSpace rs = reserve_heap_memory(ReservedCodeCacheSize); - add_heap(rs, "Code Cache", InitialCodeCacheSize, CodeBlobType::All); } // Initialize ICache flush mechanism // This service is needed for os::register_code_area icache_init();
*** 1239,1249 **** --- 1239,1249 ---- CodeHeap* heap = (*heap_iterator); size_t total = (heap->high_boundary() - heap->low_boundary()); if (SegmentedCodeCache) { st->print("%s:", heap->name()); } else { - st->print("Code Cache:"); } st->print_cr(" size=" SIZE_FORMAT "Kb used=" SIZE_FORMAT "Kb max_used=" SIZE_FORMAT "Kb free=" SIZE_FORMAT "Kb", total/K, (total - heap->unallocated_capacity())/K, heap->max_allocated_capacity()/K, heap->unallocated_capacity()/K);

src/share/vm/code/codeCache.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File