提交 3b671e98 编写于 作者: Y ysr

Merge

...@@ -2626,9 +2626,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(HeapRegion* popular_region) { ...@@ -2626,9 +2626,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(HeapRegion* popular_region) {
#endif // SCAN_ONLY_VERBOSE #endif // SCAN_ONLY_VERBOSE
double end_time_sec = os::elapsedTime(); double end_time_sec = os::elapsedTime();
if (!evacuation_failed()) { double pause_time_ms = (end_time_sec - start_time_sec) * MILLIUNITS;
g1_policy()->record_pause_time((end_time_sec - start_time_sec)*1000.0); g1_policy()->record_pause_time_ms(pause_time_ms);
}
GCOverheadReporter::recordSTWEnd(end_time_sec); GCOverheadReporter::recordSTWEnd(end_time_sec);
g1_policy()->record_collection_pause_end(popular_region != NULL, g1_policy()->record_collection_pause_end(popular_region != NULL,
abandoned); abandoned);
......
...@@ -1014,7 +1014,7 @@ void G1CollectorPolicy::record_full_collection_end() { ...@@ -1014,7 +1014,7 @@ void G1CollectorPolicy::record_full_collection_end() {
_all_full_gc_times_ms->add(full_gc_time_ms); _all_full_gc_times_ms->add(full_gc_time_ms);
update_recent_gc_times(end_sec, full_gc_time_sec); update_recent_gc_times(end_sec, full_gc_time_ms);
_g1->clear_full_collection(); _g1->clear_full_collection();
...@@ -1475,6 +1475,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular, ...@@ -1475,6 +1475,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular,
size_t cur_used_bytes = _g1->used(); size_t cur_used_bytes = _g1->used();
assert(cur_used_bytes == _g1->recalculate_used(), "It should!"); assert(cur_used_bytes == _g1->recalculate_used(), "It should!");
bool last_pause_included_initial_mark = false; bool last_pause_included_initial_mark = false;
bool update_stats = !abandoned && !_g1->evacuation_failed();
#ifndef PRODUCT #ifndef PRODUCT
if (G1YoungSurvRateVerbose) { if (G1YoungSurvRateVerbose) {
...@@ -1535,7 +1536,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular, ...@@ -1535,7 +1536,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular,
_n_pauses++; _n_pauses++;
if (!abandoned) { if (update_stats) {
_recent_CH_strong_roots_times_ms->add(_cur_CH_strong_roots_dur_ms); _recent_CH_strong_roots_times_ms->add(_cur_CH_strong_roots_dur_ms);
_recent_G1_strong_roots_times_ms->add(_cur_G1_strong_roots_dur_ms); _recent_G1_strong_roots_times_ms->add(_cur_G1_strong_roots_dur_ms);
_recent_evac_times_ms->add(evac_ms); _recent_evac_times_ms->add(evac_ms);
...@@ -1636,7 +1637,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular, ...@@ -1636,7 +1637,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular,
double termination_time = avg_value(_par_last_termination_times_ms); double termination_time = avg_value(_par_last_termination_times_ms);
double parallel_other_time; double parallel_other_time;
if (!abandoned) { if (update_stats) {
MainBodySummary* body_summary = summary->main_body_summary(); MainBodySummary* body_summary = summary->main_body_summary();
guarantee(body_summary != NULL, "should not be null!"); guarantee(body_summary != NULL, "should not be null!");
...@@ -1852,7 +1853,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular, ...@@ -1852,7 +1853,7 @@ void G1CollectorPolicy::record_collection_pause_end(bool popular,
// <NEW PREDICTION> // <NEW PREDICTION>
if (!popular && !abandoned) { if (!popular && update_stats) {
double pause_time_ms = elapsed_ms; double pause_time_ms = elapsed_ms;
size_t diff = 0; size_t diff = 0;
......
...@@ -966,7 +966,7 @@ public: ...@@ -966,7 +966,7 @@ public:
record_termination_time(0, ms); record_termination_time(0, ms);
} }
void record_pause_time(double ms) { void record_pause_time_ms(double ms) {
_last_pause_time_ms = ms; _last_pause_time_ms = ms;
} }
......
...@@ -43,11 +43,13 @@ void GenericGrowableArray::check_nesting() { ...@@ -43,11 +43,13 @@ void GenericGrowableArray::check_nesting() {
#endif #endif
void* GenericGrowableArray::raw_allocate(int elementSize) { void* GenericGrowableArray::raw_allocate(int elementSize) {
assert(_max >= 0, "integer overflow");
size_t byte_size = elementSize * (size_t) _max;
if (on_stack()) { if (on_stack()) {
return (void*)resource_allocate_bytes(elementSize * _max); return (void*)resource_allocate_bytes(byte_size);
} else if (on_C_heap()) { } else if (on_C_heap()) {
return (void*)AllocateHeap(elementSize * _max, "GrET in " __FILE__); return (void*)AllocateHeap(byte_size, "GrET in " __FILE__);
} else { } else {
return _arena->Amalloc(elementSize * _max); return _arena->Amalloc(byte_size);
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册