summaryrefslogtreecommitdiff
path: root/runtime/thread.cc
diff options
context:
space:
mode:
author Mythri Alle <mythria@google.com> 2025-01-13 12:00:33 +0000
committer Mythri Alle <mythria@google.com> 2025-01-24 01:05:24 -0800
commit1a9a8abf19e7641149fcaed3971bf0aa99f4dfb8 (patch)
tree74cc6c1c49a2fe36b29807ed2256b26073df9628 /runtime/thread.cc
parent2576b59a2dad4ee542eb50fb451ff88a4b8902ad (diff)
Use nanoseconds for v2 method tracing
Update the precision of timestamps to be nanoseconds and use nanosecond precision in method trace format v2. For format v1 we use microsecond precision for backwards compatability. Bug: 259258187 Test: art/test.py -t 2246 Change-Id: I099e21f5d143c5444193e7886b5281b32f87d5d3
Diffstat (limited to 'runtime/thread.cc')
-rw-r--r--runtime/thread.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/runtime/thread.cc b/runtime/thread.cc
index 50f6bfc499..89465979da 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -1485,12 +1485,21 @@ void Thread::GetThreadName(std::string& name) const {
uint64_t Thread::GetCpuMicroTime() const {
#if defined(__linux__)
+ return Thread::GetCpuNanoTime() / 1000;
+#else // __APPLE__
+ UNIMPLEMENTED(WARNING);
+ return -1;
+#endif
+}
+
+uint64_t Thread::GetCpuNanoTime() const {
+#if defined(__linux__)
clockid_t cpu_clock_id;
pthread_getcpuclockid(tlsPtr_.pthread_self, &cpu_clock_id);
timespec now;
clock_gettime(cpu_clock_id, &now);
- return static_cast<uint64_t>(now.tv_sec) * UINT64_C(1000000) +
- static_cast<uint64_t>(now.tv_nsec) / UINT64_C(1000);
+ return static_cast<uint64_t>(now.tv_sec) * UINT64_C(1000000000) +
+ static_cast<uint64_t>(now.tv_nsec);
#else // __APPLE__
UNIMPLEMENTED(WARNING);
return -1;