Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 6611:7383557659bd
7185699: G1: Prediction model discrepancies
Summary: Correct the result value of G1CollectedHeap::pending_card_num(). Change the code that calculates the GC efficiency of a non-young heap region to use historical data from mixed GCs and the actual number of live bytes when predicting how long it would take to collect the region. Changes were also reviewed by Thomas Schatzl.
Reviewed-by: azeemj, brutisso
author | johnc |
---|---|
date | Tue, 21 Aug 2012 14:10:39 -0700 |
parents | f99a36499b8c |
children | bb3f6194fedb |
comparison
equal
deleted
inserted
replaced
6610:f99a36499b8c | 6611:7383557659bd |
---|---|
3588 curr = curr->next(); | 3588 curr = curr->next(); |
3589 } | 3589 } |
3590 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); | 3590 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); |
3591 size_t buffer_size = dcqs.buffer_size(); | 3591 size_t buffer_size = dcqs.buffer_size(); |
3592 size_t buffer_num = dcqs.completed_buffers_num(); | 3592 size_t buffer_num = dcqs.completed_buffers_num(); |
3593 return buffer_size * buffer_num + extra_cards; | 3593 |
3594 } | 3594 // PtrQueueSet::buffer_size() and PtrQueue:size() return sizes |
3595 | 3595 // in bytes - not the number of 'entries'. We need to convert |
3596 size_t G1CollectedHeap::max_pending_card_num() { | 3596 // into a number of cards. |
3597 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); | 3597 return (buffer_size * buffer_num + extra_cards) / oopSize; |
3598 size_t buffer_size = dcqs.buffer_size(); | |
3599 size_t buffer_num = dcqs.completed_buffers_num(); | |
3600 int thread_num = Threads::number_of_threads(); | |
3601 return (buffer_num + thread_num) * buffer_size; | |
3602 } | 3598 } |
3603 | 3599 |
3604 size_t G1CollectedHeap::cards_scanned() { | 3600 size_t G1CollectedHeap::cards_scanned() { |
3605 return g1_rem_set()->cardsScanned(); | 3601 return g1_rem_set()->cardsScanned(); |
3606 } | 3602 } |