On 4/26/05, Michael Spencer <[EMAIL PROTECTED]> wrote: > IronPython runs this sieve function 20-30% faster than CPython > > def primes2(n): > if n<2: return [] > s=range(1,n,2) # [1,3,5....n | n-1] > s[0] = 2 > len_s = len(s) > for i in xrange(1,int(sqrt(n)/2)+1): > m = s[i] > if m: > j=(m*m)/2 > while j<len_s: > s[j]=0 > j = j+m > > return [i for i in s if i] > > def timeit(N): > t1 = time.clock() > l1 = primes2(N) > tp1 = time.clock()- t1 > return tp1 > > CPython 2.4 > >>> [timeit(1000000) for i in 1,2,3] > [0.746761948795168, 0.76873792618893333, 0.78001002920763085] > >>> > > IronPython 0.7.3 > >>> [timeit(1000000) for i in 1,2,3] > [0.590843200683594, 0.550788879394531, 0.490707397460938] > >>> > > Michael > > _______________________________________________ > users-ironpython.com mailing list > users-ironpython.com@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com >
Never trust the program you're running to give you accurate time. Use 'time python foo.py' instead. If you're going to do that put most of the code in a seperate file that gets imported so the bytecode gets cached since IronPython is precompiled to IL. Other than that, cool. -- Travis Watkins http://www.realistanew.com _______________________________________________ users-ironpython.com mailing list users-ironpython.com@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com