diff options
author | 2025-01-13 12:00:33 +0000 | |
---|---|---|
committer | 2025-01-24 01:05:24 -0800 | |
commit | 1a9a8abf19e7641149fcaed3971bf0aa99f4dfb8 (patch) | |
tree | 74cc6c1c49a2fe36b29807ed2256b26073df9628 /runtime/thread.cc | |
parent | 2576b59a2dad4ee542eb50fb451ff88a4b8902ad (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.cc | 13 |
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; |