Index: src/runtime-profiler.cc |
diff --git a/src/runtime-profiler.cc b/src/runtime-profiler.cc |
index 28755e3ebef77cd11c2beb460adede8460fd5b4d..028af49f12dffdee37ad34613668e2bb28c63ec3 100644 |
--- a/src/runtime-profiler.cc |
+++ b/src/runtime-profiler.cc |
@@ -130,9 +130,11 @@ RuntimeProfiler::RuntimeProfiler(Isolate* isolate) |
js_ratio_(0), |
sampler_window_position_(0), |
optimize_soon_list_(NULL), |
- state_window_position_(0) { |
- state_counts_[0] = kStateWindowSize; |
- state_counts_[1] = 0; |
+ state_window_position_(0), |
+ state_window_ticks_(0) { |
+ state_counts_[IN_NON_JS_STATE] = kStateWindowSize; |
Vyacheslav Egorov (Chromium)
2011/04/09 17:00:21
Wild idea: when going idle we stop profiler. Why d
Vitaly Repeshko
2011/04/10 08:13:27
I agree. As we discussed, we should revisit the he
Kasper Lund
2011/04/11 06:10:06
Before this change, we were intentionally being le
Vitaly Repeshko
2011/04/11 19:43:53
The slow start is still here, because even if we o
|
+ state_counts_[IN_JS_STATE] = 0; |
+ STATIC_ASSERT(IN_NON_JS_STATE == 0); |
memset(state_window_, 0, sizeof(state_window_)); |
ClearSampleBuffer(); |
} |
@@ -344,8 +346,9 @@ void RuntimeProfiler::UpdateStateRatio(SamplerState current_state) { |
ASSERT(IsPowerOf2(kStateWindowSize)); |
state_window_position_ = (state_window_position_ + 1) & |
(kStateWindowSize - 1); |
+ state_window_ticks_ = Min(kStateWindowSize, state_window_ticks_ + 1); |
Vyacheslav Egorov (Chromium)
2011/04/09 17:00:21
Our RuntimeProfiler is full of magic and very hard
Vitaly Repeshko
2011/04/10 08:13:27
It's not too late to make it readable :) Added a c
|
NoBarrier_Store(&js_ratio_, state_counts_[IN_JS_STATE] * 100 / |
- kStateWindowSize); |
+ state_window_ticks_); |
} |
#endif |