1518 // with. 1519 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1520 #if INCLUDE_ALL_GCS 1521 if (UseParallelGC) { 1522 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1523 } else if (UseG1GC) { 1524 heap_alignment = G1CollectedHeap::conservative_max_heap_alignment(); 1525 } 1526 #endif // INCLUDE_ALL_GCS 1527 _conservative_max_heap_alignment = MAX4(heap_alignment, 1528 (size_t)os::vm_allocation_granularity(), 1529 os::max_page_size(), 1530 CollectorPolicy::compute_heap_alignment()); 1531 } 1532 1533 void Arguments::select_gc_ergonomically() { 1534 if (os::is_server_class_machine()) { 1535 if (should_auto_select_low_pause_collector()) { 1536 FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true); 1537 } else { 1538 FLAG_SET_ERGO(bool, UseParallelGC, true); 1539 } 1540 } else { 1541 FLAG_SET_ERGO(bool, UseSerialGC, true); 1542 } 1543 } 1544 1545 void Arguments::select_gc() { 1546 if (!gc_selected()) { 1547 select_gc_ergonomically(); 1548 guarantee(gc_selected(), "No GC selected"); 1549 } 1550 } 1551 1552 void Arguments::set_ergonomics_flags() { 1553 select_gc(); 1554 1555 #ifdef COMPILER2 1556 // Shared spaces work fine with other GCs but causes bytecode rewriting 1557 // to be disabled, which hurts interpreter performance and decreases 1558 // server performance. When -server is specified, keep the default off | 1518 // with. 1519 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1520 #if INCLUDE_ALL_GCS 1521 if (UseParallelGC) { 1522 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1523 } else if (UseG1GC) { 1524 heap_alignment = G1CollectedHeap::conservative_max_heap_alignment(); 1525 } 1526 #endif // INCLUDE_ALL_GCS 1527 _conservative_max_heap_alignment = MAX4(heap_alignment, 1528 (size_t)os::vm_allocation_granularity(), 1529 os::max_page_size(), 1530 CollectorPolicy::compute_heap_alignment()); 1531 } 1532 1533 void Arguments::select_gc_ergonomically() { 1534 if (os::is_server_class_machine()) { 1535 if (should_auto_select_low_pause_collector()) { 1536 FLAG_SET_ERGO(bool, UseConcMarkSweepGC, true); 1537 } else { 1538 #if defined(JAVASE_EMBEDDED) 1539 FLAG_SET_ERGO(bool, UseParallelGC, true); 1540 #else 1541 FLAG_SET_ERGO(bool, UseG1GC, true); 1542 #endif 1543 } 1544 } else { 1545 FLAG_SET_ERGO(bool, UseSerialGC, true); 1546 } 1547 } 1548 1549 void Arguments::select_gc() { 1550 if (!gc_selected()) { 1551 select_gc_ergonomically(); 1552 guarantee(gc_selected(), "No GC selected"); 1553 } 1554 } 1555 1556 void Arguments::set_ergonomics_flags() { 1557 select_gc(); 1558 1559 #ifdef COMPILER2 1560 // Shared spaces work fine with other GCs but causes bytecode rewriting 1561 // to be disabled, which hurts interpreter performance and decreases 1562 // server performance. When -server is specified, keep the default off |