Index: tools/traceline/traceline/rdtsc.h |
diff --git a/tools/traceline/traceline/rdtsc.h b/tools/traceline/traceline/rdtsc.h |
new file mode 100755 |
index 0000000000000000000000000000000000000000..7c3cb1a967612967cdeae76405e0f91debabf57e |
--- /dev/null |
+++ b/tools/traceline/traceline/rdtsc.h |
@@ -0,0 +1,43 @@ |
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef TRACELINE_RDTSC_H_ |
+#define TRACELINE_RDTSC_H_ |
+ |
+#include <windows.h> |
+#include <powrprof.h> |
+ |
+#include <map> |
+ |
+#include "logging.h" |
+ |
+class RDTSCNormalizer { |
+ public: |
+ RDTSCNormalizer() { } |
+ ~RDTSCNormalizer() { } |
+ |
+ void Start() { |
+ LARGE_INTEGER freq, now; |
+ if (QueryPerformanceFrequency(&freq) == 0) { |
+ NOTREACHED(""); |
+ } |
+ freq_ = freq.QuadPart; |
+ |
+ if (QueryPerformanceCounter(&now) == 0) { |
+ NOTREACHED(""); |
+ } |
+ start_ = now.QuadPart; |
+ } |
+ |
+ // Calculate the time from start for a given processor. |
+ double MsFromStart(void* procid, __int64 stamp) { |
+ return (stamp - start_) / (freq_ / 1000.0); |
+ } |
+ |
+ private: |
+ __int64 freq_; |
+ __int64 start_; |
+}; |
+ |
+#endif // TRACELINE_RDTSC_H_ |