mirror of
https://github.com/matrix-construct/construct
synced 2024-11-17 15:30:52 +01:00
ircd::prof: Add more timing calls with better resolution.
This commit is contained in:
parent
161502452a
commit
d1966fffb5
2 changed files with 22 additions and 0 deletions
|
@ -29,6 +29,8 @@ namespace ircd::prof
|
|||
uint64_t time_user(); ///< Nanoseconds of CPU time in userspace.
|
||||
uint64_t time_kern(); ///< Nanoseconds of CPU time in kernelland.
|
||||
uint64_t time_real(); ///< Nanoseconds of CPU time real.
|
||||
uint64_t time_proc(); ///< Nanoseconds of CPU time for process.
|
||||
uint64_t time_thrd(); ///< Nanoseconds of CPU time for thread.
|
||||
|
||||
// Observe
|
||||
system &hotsample(system &) noexcept;
|
||||
|
|
20
ircd/prof.cc
20
ircd/prof.cc
|
@ -649,6 +649,26 @@ ircd::prof::debug(std::ostream &s,
|
|||
return s;
|
||||
}
|
||||
|
||||
//
|
||||
// Interface
|
||||
//
|
||||
|
||||
uint64_t
|
||||
ircd::prof::time_thrd()
|
||||
{
|
||||
struct ::timespec tv;
|
||||
syscall(::clock_gettime, CLOCK_THREAD_CPUTIME_ID, &tv);
|
||||
return ulong(tv.tv_sec) * 1000000000UL + tv.tv_nsec;
|
||||
}
|
||||
|
||||
uint64_t
|
||||
ircd::prof::time_proc()
|
||||
{
|
||||
struct ::timespec tv;
|
||||
syscall(::clock_gettime, CLOCK_PROCESS_CPUTIME_ID, &tv);
|
||||
return ulong(tv.tv_sec) * 1000000000UL + tv.tv_nsec;
|
||||
}
|
||||
|
||||
//
|
||||
// Interface (cross-platform)
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue