Jeroen Demeyer on Sat, 11 Sep 2004 11:39:45 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
patch: Timing using system() or extern() |
Technically: times() is used instead of getrusage(). times() easily allows one to get the time for child processes.
Index: config/get_libc =================================================================== RCS file: /home/cvs/pari/config/get_libc,v retrieving revision 1.5 diff -u -r1.5 get_libc --- config/get_libc 5 May 2004 12:36:37 -0000 1.5 +++ config/get_libc 11 Sep 2004 09:14:15 -0000 @@ -13,7 +13,7 @@ alpha) list='times ftime';; # gp-dyn has problems with getrusage *) case "$osname" in *cygwin*) list='times ftime';; # getrusage based timer always returns 0 - *) list='getrusage times ftime';; + *) list='times getrusage ftime';; esac;; esac; . ./look list='sigsetmask sigrelse'; . ./look Index: config/has_times.c =================================================================== RCS file: /home/cvs/pari/config/has_times.c,v retrieving revision 1.2 diff -u -r1.2 has_times.c --- config/has_times.c 7 Jan 2003 20:33:19 -0000 1.2 +++ config/has_times.c 11 Sep 2004 09:14:15 -0000 @@ -1,2 +1,3 @@ #include <stdio.h> -main(){ extern int times(); printf("%d",times());} +#include <sys/times.h> +main(){ struct tms t; printf("%d",times(&t));} Index: config/paricfg.h.SH =================================================================== RCS file: /home/cvs/pari/config/paricfg.h.SH,v retrieving revision 1.23 diff -u -r1.23 paricfg.h.SH --- config/paricfg.h.SH 19 Jul 2004 14:49:42 -0000 1.23 +++ config/paricfg.h.SH 11 Sep 2004 09:14:15 -0000 @@ -150,10 +150,10 @@ no) echo '#define ULONG_NOT_DEFINED' >> $file;; esac -case "$has_getrusage" in -yes) echo '#define USE_GETRUSAGE 1' >> $file;; - *) case "$has_times" in - yes) echo '#define USE_TIMES 1' >> $file;; +case "$has_times" in +yes) echo '#define USE_TIMES 1' >> $file;; + *) case "$has_getrusage" in + yes) echo '#define USE_GETRUSAGE 1' >> $file;; *) case "$has_ftime" in yes) echo '#define USE_FTIME 1' >> $file;; esac;; Index: src/headers/pari.h =================================================================== RCS file: /home/cvs/pari/src/headers/pari.h,v retrieving revision 1.4 diff -u -r1.4 pari.h --- src/headers/pari.h 22 Jul 2004 15:28:32 -0000 1.4 +++ src/headers/pari.h 11 Sep 2004 09:14:17 -0000 @@ -35,6 +35,10 @@ # include <stdio.h> #endif +#ifdef USE_TIMES +# include <sys/times.h> +#endif + #include <stdarg.h> #include <setjmp.h> #include <string.h> Index: src/language/init.c =================================================================== RCS file: /home/cvs/pari/src/language/init.c,v retrieving revision 1.238 diff -u -r1.238 init.c --- src/language/init.c 8 Sep 2004 10:51:54 -0000 1.238 +++ src/language/init.c 11 Sep 2004 09:14:21 -0000 @@ -1906,7 +1906,7 @@ TIMER(pari_timer *T) { struct tms t; times(&t); - return _get_time(T, t.tms_utime, CLK_TCK); + return _get_time(T, t.tms_utime + t.tms_cutime, CLK_TCK); } #elif USE_GETRUSAGE