Index: src/heap/gc-tracer.cc |
diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc |
index c4a118afb79245594ea8fee05ceea6e95f66190b..b606d69a1306ad1d30ce13844935d1943cdacb27 100644 |
--- a/src/heap/gc-tracer.cc |
+++ b/src/heap/gc-tracer.cc |
@@ -467,8 +467,7 @@ void GCTracer::PrintNVP() const { |
"external_weak_global_handles=%.2f " |
"steps_count=%d " |
"steps_took=%.1f " |
- "scavenge_throughput=%" V8_PTR_PREFIX |
- "d " |
+ "scavenge_throughput=%.f " |
"total_size_before=%" V8_PTR_PREFIX |
"d " |
"total_size_after=%" V8_PTR_PREFIX |
@@ -570,8 +569,7 @@ void GCTracer::PrintNVP() const { |
"finalization_steps_count=%d " |
"finalization_steps_took=%.1f " |
"finalization_longest_step=%.1f " |
- "incremental_marking_throughput=%" V8_PTR_PREFIX |
- "d " |
+ "incremental_marking_throughput=%.f " |
"total_size_before=%" V8_PTR_PREFIX |
"d " |
"total_size_after=%" V8_PTR_PREFIX |
@@ -595,7 +593,7 @@ void GCTracer::PrintNVP() const { |
"semi_space_copy_rate=%.1f%% " |
"new_space_allocation_throughput=%.1f " |
"context_disposal_rate=%.1f " |
- "compaction_speed=%" V8_PTR_PREFIX "d\n", |
+ "compaction_speed=%.f\n", |
heap_->isolate()->time_millis_since_init(), duration, |
spent_in_mutator, current_.TypeName(true), current_.reduce_memory, |
current_.scopes[Scope::MC_CLEAR], |
@@ -659,8 +657,8 @@ void GCTracer::PrintNVP() const { |
} |
} |
-int GCTracer::AverageSpeed(const RingBuffer<BytesAndDuration>& buffer, |
- const BytesAndDuration& initial, double time_ms) { |
+double GCTracer::AverageSpeed(const RingBuffer<BytesAndDuration>& buffer, |
+ const BytesAndDuration& initial, double time_ms) { |
BytesAndDuration sum = buffer.Sum( |
[time_ms](BytesAndDuration a, BytesAndDuration b) { |
if (time_ms != 0 && a.second >= time_ms) return a; |
@@ -670,30 +668,30 @@ int GCTracer::AverageSpeed(const RingBuffer<BytesAndDuration>& buffer, |
uint64_t bytes = sum.first; |
double durations = sum.second; |
if (durations == 0.0) return 0; |
- double speed = bytes / durations + 0.5; |
+ double speed = bytes / durations; |
const int max_speed = 1024 * MB; |
const int min_speed = 1; |
if (speed >= max_speed) return max_speed; |
if (speed <= min_speed) return min_speed; |
- return static_cast<int>(speed); |
+ return speed; |
} |
-int GCTracer::AverageSpeed(const RingBuffer<BytesAndDuration>& buffer) { |
+double GCTracer::AverageSpeed(const RingBuffer<BytesAndDuration>& buffer) { |
return AverageSpeed(buffer, MakeBytesAndDuration(0, 0), 0); |
} |
-intptr_t GCTracer::IncrementalMarkingSpeedInBytesPerMillisecond() const { |
+double GCTracer::IncrementalMarkingSpeedInBytesPerMillisecond() const { |
if (cumulative_incremental_marking_duration_ == 0.0) return 0; |
// We haven't completed an entire round of incremental marking, yet. |
// Use data from GCTracer instead of data from event buffers. |
if (recorded_incremental_marking_steps_.Count() == 0) { |
- return static_cast<intptr_t>(cumulative_incremental_marking_bytes_ / |
- cumulative_pure_incremental_marking_duration_); |
+ return cumulative_incremental_marking_bytes_ / |
+ cumulative_pure_incremental_marking_duration_; |
} |
return AverageSpeed(recorded_incremental_marking_steps_); |
} |
-intptr_t GCTracer::ScavengeSpeedInBytesPerMillisecond( |
+double GCTracer::ScavengeSpeedInBytesPerMillisecond( |
ScavengeSpeedMode mode) const { |
if (mode == kForAllObjects) { |
return AverageSpeed(recorded_scavenges_total_); |
@@ -702,16 +700,15 @@ intptr_t GCTracer::ScavengeSpeedInBytesPerMillisecond( |
} |
} |
-intptr_t GCTracer::CompactionSpeedInBytesPerMillisecond() const { |
+double GCTracer::CompactionSpeedInBytesPerMillisecond() const { |
return AverageSpeed(recorded_compactions_); |
} |
-intptr_t GCTracer::MarkCompactSpeedInBytesPerMillisecond() const { |
+double GCTracer::MarkCompactSpeedInBytesPerMillisecond() const { |
return AverageSpeed(recorded_mark_compacts_); |
} |
-intptr_t GCTracer::FinalIncrementalMarkCompactSpeedInBytesPerMillisecond() |
- const { |
+double GCTracer::FinalIncrementalMarkCompactSpeedInBytesPerMillisecond() const { |
return AverageSpeed(recorded_incremental_mark_compacts_); |
} |
@@ -719,15 +716,13 @@ double GCTracer::CombinedMarkCompactSpeedInBytesPerMillisecond() { |
if (combined_mark_compact_speed_cache_ > 0) |
return combined_mark_compact_speed_cache_; |
const double kMinimumMarkingSpeed = 0.5; |
- double speed1 = |
- static_cast<double>(IncrementalMarkingSpeedInBytesPerMillisecond()); |
- double speed2 = static_cast<double>( |
- FinalIncrementalMarkCompactSpeedInBytesPerMillisecond()); |
+ double speed1 = IncrementalMarkingSpeedInBytesPerMillisecond(); |
+ double speed2 = FinalIncrementalMarkCompactSpeedInBytesPerMillisecond(); |
if (speed1 < kMinimumMarkingSpeed || speed2 < kMinimumMarkingSpeed) { |
// No data for the incremental marking speed. |
// Return the non-incremental mark-compact speed. |
combined_mark_compact_speed_cache_ = |
- static_cast<double>(MarkCompactSpeedInBytesPerMillisecond()); |
+ MarkCompactSpeedInBytesPerMillisecond(); |
} else { |
// Combine the speed of incremental step and the speed of the final step. |
// 1 / (1 / speed1 + 1 / speed2) = speed1 * speed2 / (speed1 + speed2). |
@@ -758,13 +753,11 @@ double GCTracer::AllocationThroughputInBytesPerMillisecond( |
OldGenerationAllocationThroughputInBytesPerMillisecond(time_ms); |
} |
- |
-size_t GCTracer::CurrentAllocationThroughputInBytesPerMillisecond() const { |
+double GCTracer::CurrentAllocationThroughputInBytesPerMillisecond() const { |
return AllocationThroughputInBytesPerMillisecond(kThroughputTimeFrameMs); |
} |
- |
-size_t GCTracer::CurrentOldGenerationAllocationThroughputInBytesPerMillisecond() |
+double GCTracer::CurrentOldGenerationAllocationThroughputInBytesPerMillisecond() |
const { |
return OldGenerationAllocationThroughputInBytesPerMillisecond( |
kThroughputTimeFrameMs); |