Steven D'Aprano schreef: > On Fri, 24 Feb 2006 10:11:18 +0100, Magnus Lycka wrote: > >> Steven D'Aprano wrote: >>> It looks like the time function under Linux at least is very slow. >> Perhaps you should try doing the same thing in C. >> Then you can see whether the problem is in the >> wrapper or in the system call. > > Good idea. > > Now, has anyone got a copy of "Learning C for Dummies" I can borrow? > > *chagrined smile*
First, for reference, the Python version on the machine I used for testing (Debian 3.1, P4 3GHz): timer1: 0.36007809639 timer2: 3.18800234795 On Windows the difference is much less. C (compiled with gcc 3.3.5 without optimizations) (see below for the code): timer1: 0.000603 timer2: 2.624557 I think it looks like the problem is in the system call. C code: #include <stdio.h> #include <sys/time.h> #include <time.h> void func(void) { } double gettime() { struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + tv.tv_usec/1e6; } double timer1(void) { double t0, t1; int i; t0 = gettime(); for (i = 0; i < 100000; ++i) { func(); } t1 = gettime(); return t1 - t0; } double timer2(void) { int i; double t = 0.0; double t0, t1; for (i = 0; i < 1000000; ++i) { t0 = gettime(); func(); t1 = gettime(); t += t1 - t0; } return t; } int main(void) { printf("timer1: %lf\n", timer1()); printf("timer2: %lf\n", timer2()); return 0; } -- If I have been able to see further, it was only because I stood on the shoulders of giants. -- Isaac Newton Roel Schroeven -- http://mail.python.org/mailman/listinfo/python-list