|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 1371 (0x55b) Types: TextFile Names: »timer.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Lib/util/timer.c«
/* timer.c: utilities to provide timing information */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/util/RCS/timer.c,v 5.0 90/09/20 16:18:08 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Lib/util/RCS/timer.c,v 5.0 90/09/20 16:18:08 pp Exp Locker: pp $ * * $Log: timer.c,v $ * Revision 5.0 90/09/20 16:18:08 pp * rcsforce : 5.0 public release * */ #include "util.h" #define NBBY 8 /* no. bits / byte */ static void tvsub (); void timer_start (tv) struct timeval *tv; { (void) gettimeofday (tv, (struct timezone *)0); } void timer_end (tv, cc, string) struct timeval *tv; int cc; char *string; { long ms; float bs; struct timeval stoptime, td; (void) gettimeofday (&stoptime, (struct timezone *)0); tvsub (&td, &stoptime, tv); ms = (td.tv_sec * 1000) + (td.tv_usec / 1000); bs = (((float) cc * NBBY * 1000) / (float) (ms ? ms : 1)) / NBBY; PP_NOTICE (("%s: %d bytes in %d.%02d seconds (%.2f Kbytes/s)", string, cc, td.tv_sec, td.tv_usec / 10000, bs / 1024)); } static void tvsub (tdiff, t1, t0) register struct timeval *tdiff, *t1, *t0; { tdiff -> tv_sec = t1 -> tv_sec - t0 -> tv_sec; tdiff -> tv_usec = t1 -> tv_usec - t0 -> tv_usec; if (tdiff -> tv_usec < 0) tdiff -> tv_sec--, tdiff -> tv_usec += 1000000; }