Skip to content

Commit

Permalink
Converted cl_perf_timer to use git__timer internally.
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffhostetler committed Mar 3, 2015
1 parent 9a859ef commit e5cf1c7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 76 deletions.
64 changes: 6 additions & 58 deletions tests/clar_libgit2_timer.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,77 +7,25 @@ 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);
t->time_started = git__timer();
}

void cl_perf_timer__stop(cl_perf_timer *t)
{
LARGE_INTEGER time_now;
QueryPerformanceCounter(&time_now);
double time_now = git__timer();

t->last.QuadPart = (time_now.QuadPart - t->time_started.QuadPart);
t->sum.QuadPart += (time_now.QuadPart - t->time_started.QuadPart);
t->last = time_now - t->time_started;
t->sum += t->last;
}

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;
return t->last;
}

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();
return t->sum;
}

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
23 changes: 5 additions & 18 deletions tests/clar_libgit2_timer.h
Original file line number Diff line number Diff line change
@@ -1,33 +1,20 @@
#ifndef __CLAR_LIBGIT2_TIMER__
#define __CLAR_LIBGIT2_TIMER__

#if defined(GIT_WIN32)

struct cl_perf_timer
{
/* cummulative running time across all start..stop intervals */
LARGE_INTEGER sum;
/* value of last start..stop interval */
LARGE_INTEGER last;
/* clock value at start */
LARGE_INTEGER time_started;
};

#define CL_PERF_TIMER_INIT {0}
double sum;

#else
/* value of last start..stop interval */
double last;

struct cl_perf_timer
{
uint32_t sum;
uint32_t last;
uint32_t time_started;
/* clock value at start */
double time_started;
};

#define CL_PERF_TIMER_INIT {0}

#endif

typedef struct cl_perf_timer cl_perf_timer;

void cl_perf_timer__init(cl_perf_timer *t);
Expand Down

0 comments on commit e5cf1c7

Please sign in to comment.