3 #include <sys/resource.h>
7 int keep_going
, count
, alternate
, seconds
, iters
;
8 struct rusage prior
, now
;
19 main(int argc
, char *argv
[])
24 if (argc
< 2 || sscanf(argv
[1], "%d", &seconds
) != 1)
27 if (argc
< 3 || sscanf(argv
[2], "%d", &iters
) != 1)
30 printf ("Running des_cipher( , , 0L, %d) for %d seconds of vtime...\n",
33 bzero(&itv
, sizeof (itv
));
34 signal (SIGVTALRM
, finish
);
35 itv
.it_value
.tv_sec
= seconds
;
36 itv
.it_value
.tv_usec
= 0;
37 setitimer(ITIMER_VIRTUAL
, &itv
, NULL
);
40 if (getrusage(0, &prior
) < 0) {
46 (void)des_setkey(blk
);
47 for (count
= 0; keep_going
; count
++)
48 (void) des_cipher(blk
, blk
, 0, iters
);
50 if (getrusage(0, &now
) < 0) {
55 msecs
= (now
.ru_utime
.tv_sec
- prior
.ru_utime
.tv_sec
) * 1000
56 + (now
.ru_utime
.tv_usec
- prior
.ru_utime
.tv_usec
) / 1000;
57 printf ("Did %d encryptions per second, each of %d iteration(s).\n",
58 1000 * count
/ msecs
, iters
);
59 printf ("\tTotal %d blocks per second.\n", (1000*iters
*count
)/msecs
);