mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 00:22:21 +00:00
84 lines
1.6 KiB
C
84 lines
1.6 KiB
C
#include "clar_libgit2.h"
|
|
#include "clar_libgit2_timer.h"
|
|
#include "buffer.h"
|
|
|
|
void cl_perf_timer__init(cl_perf_timer *t)
|
|
{
|
|
memset(t, 0, sizeof(cl_perf_timer));
|
|
}
|
|
|
|
#if defined(GIT_WIN32)
|
|
|
|
void cl_perf_timer__start(cl_perf_timer *t)
|
|
{
|
|
QueryPerformanceCounter(&t->time_started);
|
|
}
|
|
|
|
void cl_perf_timer__stop(cl_perf_timer *t)
|
|
{
|
|
LARGE_INTEGER time_now;
|
|
QueryPerformanceCounter(&time_now);
|
|
|
|
t->last.QuadPart = (time_now.QuadPart - t->time_started.QuadPart);
|
|
t->sum.QuadPart += (time_now.QuadPart - t->time_started.QuadPart);
|
|
}
|
|
|
|
double cl_perf_timer__last(const cl_perf_timer *t)
|
|
{
|
|
LARGE_INTEGER freq;
|
|
double fraction;
|
|
|
|
QueryPerformanceFrequency(&freq);
|
|
|
|
fraction = ((double)t->last.QuadPart) / ((double)freq.QuadPart);
|
|
return fraction;
|
|
}
|
|
|
|
double cl_perf_timer__sum(const cl_perf_timer *t)
|
|
{
|
|
LARGE_INTEGER freq;
|
|
double fraction;
|
|
|
|
QueryPerformanceFrequency(&freq);
|
|
|
|
fraction = ((double)t->sum.QuadPart) / ((double)freq.QuadPart);
|
|
return fraction;
|
|
}
|
|
|
|
#else
|
|
|
|
#include <sys/time.h>
|
|
|
|
static uint32_t now_in_ms(void)
|
|
{
|
|
struct timeval now;
|
|
gettimeofday(&now, NULL);
|
|
return (uint32_t)((now.tv_sec * 1000) + (now.tv_usec / 1000));
|
|
}
|
|
|
|
void cl_perf_timer__start(cl_perf_timer *t)
|
|
{
|
|
t->time_started = now_in_ms();
|
|
}
|
|
|
|
void cl_perf_timer__stop(cl_perf_timer *t)
|
|
{
|
|
uint32_t now = now_in_ms();
|
|
t->last = (now - t->time_started);
|
|
t->sum += (now - t->time_started);
|
|
}
|
|
|
|
double cl_perf_timer__last(const cl_perf_timer *t)
|
|
{
|
|
double fraction = ((double)t->last) / 1000;
|
|
return fraction;
|
|
}
|
|
|
|
double cl_perf_timer__sum(const cl_perf_timer *t)
|
|
{
|
|
double fraction = ((double)t->sum) / 1000;
|
|
return fraction;
|
|
}
|
|
|
|
#endif
|