فهرست منبع

Use GTimer instead of homegrown solution

Matthias Vogelgesang 9 سال پیش
والد
کامیت
bb8abaf87b
4فایلهای تغییر یافته به همراه12 افزوده شده و 66 حذف شده
  1. 2 2
      tiff/Makefile
  2. 10 10
      tiff/tiffperf.c
  3. 0 42
      tiff/timer.c
  4. 0 12
      tiff/timer.h

+ 2 - 2
tiff/Makefile

@@ -1,6 +1,6 @@
 BIN=tiffperf
-SRC=tiffperf.c timer.c
-PKG_DEPS = libtiff-4
+SRC=tiffperf.c
+PKG_DEPS = libtiff-4 glib-2.0
 CFLAGS = -g -ggdb
 
 include ../c.mk

+ 10 - 10
tiff/tiffperf.c

@@ -4,7 +4,7 @@
 #include <string.h>
 #include <tiffio.h>
 #include <unistd.h>
-#include "timer.h"
+#include <glib.h>
 
 typedef struct {
     unsigned width;
@@ -70,18 +70,18 @@ write_single_tiffs (uint16_t *data, ImageSize *size)
 }
 
 static void
-print_time (const char *fmt, ImageSize *size, Timer *timer)
+print_time (const char *fmt, ImageSize *size, GTimer *timer)
 {
     size_t total;
 
     total = size->width * size->height * size->num * 2;
-    printf (fmt, ((double) total) / 1024. / 1024. / timer_get_seconds (timer));
+    printf (fmt, ((double) total) / 1024. / 1024. / g_timer_elapsed (timer, NULL));
 }
 
 int
 main(int argc, char const* argv[])
 {
-    Timer *timer;
+    GTimer *timer;
 
     ImageSize size = {
         .width = 2048,
@@ -93,19 +93,19 @@ main(int argc, char const* argv[])
     uint16_t *data;
 
     data = malloc (size.width * size.height * 2);
-    timer = timer_new ();
+    timer = g_timer_new ();
 
-    timer_start (timer);
+    g_timer_start (timer);
     write_multi_tiff (data, &size);
-    timer_stop (timer);
+    g_timer_stop (timer);
     print_time ("Multi TIFF: %f MB/s\n", &size, timer);
 
-    timer_start (timer);
+    g_timer_start (timer);
     write_single_tiffs (data, &size);
-    timer_stop (timer);
+    g_timer_stop (timer);
     print_time ("Single TIFF: %f MB/s\n", &size, timer);
 
-    timer_destroy (timer);
+    g_timer_destroy (timer);
     free (data);
     return 0;
 }

+ 0 - 42
tiff/timer.c

@@ -1,42 +0,0 @@
-#include <sys/time.h>
-#include <stdlib.h>
-#include "timer.h"
-
-struct _Timer {
-    struct timeval start;
-    struct timeval end;
-};
-
-
-Timer *
-timer_new (void)
-{
-    Timer *t = (Timer *) malloc (sizeof (Timer));
-    return t;
-}
-
-void
-timer_destroy (Timer *t)
-{
-    free (t);
-}
-
-void
-timer_start (Timer *t)
-{
-    gettimeofday (&t->start, NULL);
-}
-
-void
-timer_stop (Timer *t)
-{
-    gettimeofday (&t->end, NULL);
-}
-
-double
-timer_get_seconds (Timer *t)
-{
-    long seconds = t->end.tv_sec - t->start.tv_sec;
-    long useconds = t->end.tv_usec - t->start.tv_usec;
-    return seconds + useconds / 1000.0 / 1000.0;
-}

+ 0 - 12
tiff/timer.h

@@ -1,12 +0,0 @@
-#ifndef TIMER_H
-#define TIMER_H
-
-typedef struct _Timer Timer;
-
-Timer * timer_new           (void);
-void    timer_destroy       (Timer *t);
-void    timer_start         (Timer *t);
-void    timer_stop          (Timer *t);
-double  timer_get_seconds   (Timer *t);
-
-#endif