Bill Allombert on Sun, 30 Sep 2012 13:27:19 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

timing in GP


Dear PARI developers,

There are various issues with the timers in GP.
1) the #/## interface:
The problem with # is that it print the time _before_ the result.
If your result is larger than the terminal, then you do not see it.
The problem with ## is that you can forget to do it until it is too late.
Maybe we could store the timing in the % history alongside the result,
a provide a command to retrieve it (e.g. %#n)

2) the gettime interface:
The problem is that it is not reentrant.
Let say you write functions:
zet(N,s)=gettime();my(s=sum(n=1,N,n^-s));print("sum:",gettime());s
vecz(N,n)=gettime();my(v=vector(n,t,zet(N,.5+I*t)));print("vec:",gettime());v

You get:
? vecz(10000,10);
sum:253
sum:251
sum:251
sum:252
sum:251
sum:251
sum:251
sum:252
sum:251
sum:251
vec:1

The final time is wrong.

We should provide a version of gettime that return the time in microseconds
since the start of the GP session so we could do
t=gettime2();....;print(gettime2()-t;

We could also provide a function printtime(t,s,...) which would do
printtime("Time ",s," :",gettime2()-t);

Cheers,
Bill.