On Jul 5, 2008, at 3:27 AM, Daryl Hammond wrote:
> Finally I spent several hours trying to reduce the SAGE code down to
> the
> smallest number of lines that would still present the problem. I
> believe I've
> done that with the following:
>
> cat /home/daryl/UserData/sage/add.sage
> # 2008-07-04 DWH Created to test out integer arithmetic
>
> from time import *
>
> y = range(10 * 1000 * 1000)
>
> #--------------------------
> tbeg = time()
> for _ in y:
> x = 1
> #--------------------------
> tmid = time()
> for _ in y:
> x = 1 + 1
> #--------------------------
> tend = time()
>
> elapsed = tmid - tbeg
> print '10M x=1: ', round(elapsed,2)
> elapsed = tend - tmid
> print '10M x=1+1:', round(elapsed,2)
>
>
> /home/daryl/sage-3.0.1/sage /home/daryl/UserData/sage/add.sage
> 10M x=1: 6.17
> 10M x=1+1: 12.92
> /home/daryl/sage-3.0.2/sage /home/daryl/UserData/sage/add.sage
> 10M x=1: 6.22
> 10M x=1+1: 19.78
Alright. Now some debugging by mailing list :-)
(1)
try the x = 1+1 loop *without* the x = 1, and check you still get the
discrepancy between 3.0.1 and 3.0.2.
If so, let's ignore the x = 1 code from here on, and concentrate on
the x = 1+1.
(2)
in between each invocation, delete the autogenerated sieve.py file,
and check that both 3.0.1 and 3.0.2 are generating essentially the
same sieve.py file
(it should be something like x = Integer(1) + Integer(1))
(3)
increase the loop count to 100 million, and run "top" while the
program is running, and keep an eye on the memory usage (for both
3.0.1 and 3.0.2). I want to see if there are any memory leaks. Also
check that there aren't any other processes (especially "lisp.run")
hogging cpu during the loop.
(4)
Assuming we haven't found anything interesting yet, now I want to try
a few variants of the main loop. Try each of these in a separate
program, for both 3.0.1 and 3.0.2, and let me know if any of them
slow down:
y = range(10^7)
for _ in y:
x = 1 + 2
y = range(10^7)
one = Integer(1)
for _ in y:
x = one + one
y = range(10^7)
one = Integer(1)
for _ in y:
x = one + 1
y = range(7)
one = int(1)
for _ in y:
x = one + one
y = range(7)
one = Integer(1)
for _ in y:
x = one.__add__(one)
david
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---