Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Unified Diff: src/heap/heap.cc

Issue 1159153003: Sample allocation throughput in all idle notifications. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/heap/heap.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/heap/heap.cc
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
index 6ef3607fc56180c07a424a63dfe63a0b3b8ee661..37eb00485f7ae463aadeb41b3a5d3a6b4143a70b 100644
--- a/src/heap/heap.cc
+++ b/src/heap/heap.cc
@@ -138,7 +138,6 @@ Heap::Heap()
store_buffer_(this),
marking_(this),
incremental_marking_(this),
- gc_count_at_last_idle_gc_(0),
full_codegen_bytes_generated_(0),
crankshaft_codegen_bytes_generated_(0),
new_space_allocation_counter_(0),
@@ -4591,8 +4590,7 @@ GCIdleTimeHandler::HeapState Heap::ComputeHeapState() {
bool Heap::PerformIdleTimeAction(GCIdleTimeAction action,
GCIdleTimeHandler::HeapState heap_state,
- double deadline_in_ms,
- bool is_long_idle_notification) {
+ double deadline_in_ms) {
bool result = false;
switch (action.type) {
case DONE:
@@ -4623,7 +4621,7 @@ bool Heap::PerformIdleTimeAction(GCIdleTimeAction action,
break;
}
case DO_FULL_GC: {
- if (is_long_idle_notification && gc_count_at_last_idle_gc_ == gc_count_) {
+ if (action.reduce_memory) {
isolate_->compilation_cache()->Clear();
}
if (contexts_disposed_) {
@@ -4633,7 +4631,6 @@ bool Heap::PerformIdleTimeAction(GCIdleTimeAction action,
CollectAllGarbage(kReduceMemoryFootprintMask,
"idle notification: finalize idle round");
}
- gc_count_at_last_idle_gc_ = gc_count_;
gc_idle_time_handler_.NotifyIdleMarkCompact();
break;
}
@@ -4653,8 +4650,7 @@ bool Heap::PerformIdleTimeAction(GCIdleTimeAction action,
void Heap::IdleNotificationEpilogue(GCIdleTimeAction action,
GCIdleTimeHandler::HeapState heap_state,
- double start_ms, double deadline_in_ms,
- bool is_long_idle_notification) {
+ double start_ms, double deadline_in_ms) {
double idle_time_in_ms = deadline_in_ms - start_ms;
double current_time = MonotonicallyIncreasingTimeInMs();
last_idle_notification_time_ = current_time;
@@ -4665,15 +4661,6 @@ void Heap::IdleNotificationEpilogue(GCIdleTimeAction action,
isolate()->counters()->gc_idle_time_allotted_in_ms()->AddSample(
static_cast<int>(idle_time_in_ms));
- if (is_long_idle_notification) {
- int committed_memory = static_cast<int>(CommittedMemory() / KB);
- int used_memory = static_cast<int>(heap_state.size_of_objects / KB);
- isolate()->counters()->aggregated_memory_heap_committed()->AddSample(
- start_ms, committed_memory);
- isolate()->counters()->aggregated_memory_heap_used()->AddSample(
- start_ms, used_memory);
- }
-
if (deadline_difference >= 0) {
if (action.type != DONE && action.type != DO_NOTHING) {
isolate()->counters()->gc_idle_time_limit_undershot()->AddSample(
@@ -4727,25 +4714,18 @@ bool Heap::IdleNotification(double deadline_in_seconds) {
isolate_->counters()->gc_idle_notification());
double start_ms = MonotonicallyIncreasingTimeInMs();
double idle_time_in_ms = deadline_in_ms - start_ms;
- bool is_long_idle_notification =
- static_cast<size_t>(idle_time_in_ms) >
- GCIdleTimeHandler::kMaxFrameRenderingIdleTime;
- if (is_long_idle_notification) {
- tracer()->SampleAllocation(start_ms, NewSpaceAllocationCounter(),
- OldGenerationAllocationCounter());
- }
+ tracer()->SampleAllocation(start_ms, NewSpaceAllocationCounter(),
+ OldGenerationAllocationCounter());
GCIdleTimeHandler::HeapState heap_state = ComputeHeapState();
GCIdleTimeAction action =
gc_idle_time_handler_.Compute(idle_time_in_ms, heap_state);
- bool result = PerformIdleTimeAction(action, heap_state, deadline_in_ms,
- is_long_idle_notification);
+ bool result = PerformIdleTimeAction(action, heap_state, deadline_in_ms);
- IdleNotificationEpilogue(action, heap_state, start_ms, deadline_in_ms,
- is_long_idle_notification);
+ IdleNotificationEpilogue(action, heap_state, start_ms, deadline_in_ms);
return result;
}
« no previous file with comments | « src/heap/heap.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698