Revision: 16067
Author: [email protected]
Date: Tue Aug 6 01:00:58 2013
Log: Return start/end profiling time in microseconds instead of
milliseconds
The start and end time are now measured in microseconds and the type is
int64_t.
This way it seems more natural as we are going to support submilisecond
sampling
rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test
failure caused by comparison between long double and double.
TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
[email protected]
Review URL: https://codereview.chromium.org/22155003
http://code.google.com/p/v8/source/detail?r=16067
Modified:
/branches/bleeding_edge/include/v8-profiler.h
/branches/bleeding_edge/src/api.cc
/branches/bleeding_edge/src/profile-generator.cc
/branches/bleeding_edge/src/profile-generator.h
/branches/bleeding_edge/test/cctest/test-cpu-profiler.cc
=======================================
--- /branches/bleeding_edge/include/v8-profiler.h Mon Aug 5 05:27:12 2013
+++ /branches/bleeding_edge/include/v8-profiler.h Tue Aug 6 01:00:58 2013
@@ -149,16 +149,16 @@
const CpuProfileNode* GetSample(int index) const;
/**
- * Returns time when the profile recording started (in milliseconds
+ * Returns time when the profile recording started (in microseconds
* since the Epoch).
*/
- double GetStartTime() const;
+ int64_t GetStartTime() const;
/**
- * Returns time when the profile recording was stopped (in milliseconds
+ * Returns time when the profile recording was stopped (in microseconds
* since the Epoch).
*/
- double GetEndTime() const;
+ int64_t GetEndTime() const;
/**
* Deletes the profile and removes it from CpuProfiler's list.
=======================================
--- /branches/bleeding_edge/src/api.cc Mon Aug 5 05:27:12 2013
+++ /branches/bleeding_edge/src/api.cc Tue Aug 6 01:00:58 2013
@@ -7591,15 +7591,15 @@
}
-double CpuProfile::GetStartTime() const {
+int64_t CpuProfile::GetStartTime() const {
const i::CpuProfile* profile = reinterpret_cast<const
i::CpuProfile*>(this);
- return profile->start_time_ms();
+ return profile->start_time_us();
}
-double CpuProfile::GetEndTime() const {
+int64_t CpuProfile::GetEndTime() const {
const i::CpuProfile* profile = reinterpret_cast<const
i::CpuProfile*>(this);
- return profile->end_time_ms();
+ return profile->end_time_us();
}
=======================================
--- /branches/bleeding_edge/src/profile-generator.cc Mon Aug 5 05:27:12
2013
+++ /branches/bleeding_edge/src/profile-generator.cc Tue Aug 6 01:00:58
2013
@@ -376,8 +376,8 @@
: title_(title),
uid_(uid),
record_samples_(record_samples),
- start_time_ms_(OS::TimeCurrentMillis()),
- end_time_ms_(0) {
+ start_time_us_(OS::Ticks()),
+ end_time_us_(0) {
}
@@ -388,13 +388,13 @@
void CpuProfile::CalculateTotalTicksAndSamplingRate() {
- end_time_ms_ = OS::TimeCurrentMillis();
+ end_time_us_ = OS::Ticks();
top_down_.CalculateTotalTicks();
- double duration = end_time_ms_ - start_time_ms_;
- if (duration < 1) duration = 1;
+ double duration_ms = (end_time_us_ - start_time_us_) / 1000.;
+ if (duration_ms < 1) duration_ms = 1;
unsigned ticks = top_down_.root()->total_ticks();
- double rate = ticks / duration;
+ double rate = ticks / duration_ms;
top_down_.SetTickRatePerMs(rate);
}
=======================================
--- /branches/bleeding_edge/src/profile-generator.h Mon Aug 5 05:27:12 2013
+++ /branches/bleeding_edge/src/profile-generator.h Tue Aug 6 01:00:58 2013
@@ -216,8 +216,8 @@
int samples_count() const { return samples_.length(); }
ProfileNode* sample(int index) const { return samples_.at(index); }
- double start_time_ms() const { return start_time_ms_; }
- double end_time_ms() const { return end_time_ms_; }
+ int64_t start_time_us() const { return start_time_us_; }
+ int64_t end_time_us() const { return end_time_us_; }
void UpdateTicksScale();
@@ -228,8 +228,8 @@
const char* title_;
unsigned uid_;
bool record_samples_;
- double start_time_ms_;
- double end_time_ms_;
+ int64_t start_time_us_;
+ int64_t end_time_us_;
List<ProfileNode*> samples_;
ProfileTree top_down_;
=======================================
--- /branches/bleeding_edge/test/cctest/test-cpu-profiler.cc Mon Aug 5
05:27:12 2013
+++ /branches/bleeding_edge/test/cctest/test-cpu-profiler.cc Tue Aug 6
01:00:58 2013
@@ -415,13 +415,13 @@
v8::HandleScope scope(env->GetIsolate());
v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
- double time_before_profiling = i::OS::TimeCurrentMillis();
+ int64_t time_before_profiling = i::OS::Ticks();
v8::Local<v8::String> profile_name = v8::String::New("test");
cpu_profiler->StartCpuProfiling(profile_name);
const v8::CpuProfile* profile =
cpu_profiler->StopCpuProfiling(profile_name);
CHECK(time_before_profiling <= profile->GetStartTime());
CHECK(profile->GetStartTime() <= profile->GetEndTime());
- CHECK(profile->GetEndTime() <= i::OS::TimeCurrentMillis());
+ CHECK(profile->GetEndTime() <= i::OS::Ticks());
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.