replace os.clock with preciser implementation

This commit is contained in:
MihailRis 2026-05-12 02:47:47 +03:00
parent be4dda3646
commit c7f35dd6be
3 changed files with 32 additions and 0 deletions

View file

@ -327,3 +327,21 @@ bool platform::stdin_has_data() {
return poll(&fds, 1, 0) == 1;
#endif
}
double platform::clock() {
#ifdef _WIN32
FILETIME createTime, exitTime, kernelTime, userTime;
if (GetProcessTimes(GetCurrentProcess(), &createTime, &exitTime, &kernelTime, &userTime)) {
ULARGE_INTEGER kernel, user;
kernel.LowPart = kernelTime.dwLowDateTime;
kernel.HighPart = kernelTime.dwHighDateTime;
user.LowPart = userTime.dwLowDateTime;
user.HighPart = userTime.dwHighDateTime;
return static_cast<double>(kernel.QuadPart + user.QuadPart) / 1000'0000.0;
}
#else
return std::clock() / static_cast<double>(CLOCKS_PER_SEC);
#endif
}