On Mon, Feb 25, 2008 at 7:01 AM, didier deshommes <[EMAIL PROTECTED]> wrote:
>
>  On Sat, Feb 23, 2008 at 1:24 PM, William Stein <[EMAIL PROTECTED]> wrote:
>  >  I'm actually pretty curious about how pexpect and XMLRPC both
>  >  done locally compare speedwise.  I've done some simple benchmarks
>  >  below.  The short answer is that pexpect is between several hundred
>  >  to several thousand times faster than XMLRPC, depending on the
>  >  platform.
>
>  More benchmarks:
>  pyxmlrpc (http://sourceforge.net/projects/py-xmlrpc/) is a c
>  implementation that is roughly 2 times faster  than xmlrpclib on small
>  inputs. Here are some numbers on linux running sage 2.10.1:
>
>  pyxmlrpc:
>  sage: %timeit ("c.execute('add', [2r, 3r])")
>  1000000 loops, best of 3: 65.8 ns per loop
>  sage: timeit c.execute('add', [2r, 3r])
>  1000 loops, best of 3: 1.46 ms per loop
>
>
>  xmlrpclib:
>  sage: %timeit ("s.add([2r,3r])")
>  1000000 loops, best of 3: 158 ns per loop
>  sage: timeit s.add([2r,3r])
>  100 loops, best of 3: 1.94 ms per loop
>
>
>  overall:
>  sage: time for _ in range(10^3): gp.eval('2+3')
>  CPU times: user 0.34 s, sys: 0.10 s, total: 0.45 s
>  Wall time: 0.82

Thanks.  What are you timing this on?  On sage.math the
same benchmark is consistently much faster:

sage: time for _ in range(10^3): gp.eval('2+3')
CPU times: user 0.09 s, sys: 0.05 s, total: 0.14 s
Wall time: 0.15

I just tried using a for loop instead of timeit to
time using xmlrpc (exactly as in
   http://docs.python.org/lib/simple-xmlrpc-servers.html)
and the timing on sage.math is:

sage: time for _ in range(10^3): s.add(2r,3r)
CPU times: user 0.66 s, sys: 0.35 s, total: 1.01 s
Wall time: 1.41

This is exactly a factor of 10 difference in speed
(in favor of pexpect).  This is *not* what I claimed
in my initial benchmark, which was wrong -- my apologies
again -- benchmarking libraries one has never used before
is always tricky.   Still 10 times faster is a lot faster.

In your benchmark pexpect is only twice as fast
as c-xml and only 3 times faster than python xml.

Summary: pexpect is anywhere between 2 and
10 times faster than xmlrpc depending on machine and
xml implementation.

Thanks Didier!

>  sage: time for _ in range(10^3): c.execute('add', [2r, 3r])
>  CPU times: user 0.08 s, sys: 0.02 s, total: 0.10 s
>  Wall time: 1.66
>
>  sage: time for _ in range(10^3): s.add([2r,3r])
>  CPU times: user 0.99 s, sys: 0.38 s, total: 1.37 s
>  Wall time: 2.51
>
>  Note: The pyxmlrpc is currently unmaintained (last realease was in
>  2004) and needs to be patched against 2.5 (there's a fix at the bottom
>  of 
> http://sourceforge.net/tracker/index.php?func=detail&aid=1734819&group_id=23992&atid=380301).
>
>
>
>  didier
>
>  >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to