perf: More simplification of PERF_LOOP macros.

Here we drop both the start_timing and stop_timing functions,
foliding their contents into main, PERF_LOOP_INIT and
PERF_LOOP_FINI.
This commit is contained in:
Carl Worth 2006-08-31 11:19:48 -07:00
parent b9f629d542
commit 7f6e901a23
2 changed files with 17 additions and 34 deletions

View file

@ -27,7 +27,7 @@
#include "cairo-perf.h"
int cairo_perf_duration = -1;
int cairo_perf_duration = 5;
int cairo_perf_alarm_expired = 0;
@ -80,24 +80,6 @@ target_is_measurable (cairo_test_target_t *target)
}
}
void
start_timing (bench_timer_t *tr) {
if (cairo_perf_duration == -1) {
if (getenv("CAIRO_PERF_DURATION"))
cairo_perf_duration = strtol(getenv("CAIRO_PERF_DURATION"), NULL, 0);
else
cairo_perf_duration = 5;
}
tr->count = 0;
timer_start (tr);
set_alarm (cairo_perf_duration);
}
void
stop_timing (bench_timer_t *tr) {
timer_stop (tr);
}
int
main (int argc, char *argv[])
{
@ -108,6 +90,9 @@ main (int argc, char *argv[])
cairo_t *cr;
unsigned int size;
if (getenv("CAIRO_PERF_DURATION"))
cairo_perf_duration = strtol(getenv("CAIRO_PERF_DURATION"), NULL, 0);
for (i = 0; targets[i].name; i++) {
target = &targets[i];
if (! target_is_measurable (target))

View file

@ -43,12 +43,6 @@ typedef struct {
#include "timer-alarm.h"
void
start_timing (bench_timer_t *tr);
void
stop_timing (bench_timer_t *tr);
extern int cairo_perf_duration;
extern int cairo_perf_alarm_expired;
@ -58,20 +52,24 @@ extern int cairo_perf_alarm_expired;
* out how to do an async timer. On a quiet system, this doesn't
* seem to significantly affect the results.
*/
# define PERF_LOOP_INIT(timervar) do { \
start_timing(&(timervar)); \
while (! cairo_perf_alarm_expired) { \
# define PERF_LOOP_INIT(timervar) do { \
timervar.count = 0; \
timer_start (&(timervar)); \
set_alarm (cairo_perf_duration); \
while (! cairo_perf_alarm_expired) { \
SleepEx(0, TRUE)
#else
# define PERF_LOOP_INIT(timervar) do { \
start_timing(&(timervar)); \
# define PERF_LOOP_INIT(timervar) do { \
timervar.count = 0; \
timer_start (&(timervar)); \
set_alarm (cairo_perf_duration); \
while (! cairo_perf_alarm_expired) {
#endif
#define PERF_LOOP_FINI(timervar) \
(timervar).count++; \
} \
stop_timing (&(timervar)); \
#define PERF_LOOP_FINI(timervar) \
(timervar).count++; \
} \
timer_stop (&(timervar)); \
} while (0)
#define PERF_LOOP_RATE(timervar) \