On Tue, Jul 28, 2009 at 09:37:56PM -0400, Stef Telford wrote:
> Here is the output from the lowlevel connection select as you
> suggested above (mostly) ordered by internal time. Note that it selects
Thank you!
> all 220k bookings, as opposed to last time when it 'only' selected 40k.
> It seems that decimal.__new__ is killer .. I could be reading this wrong
> (of course) but.. the tottime would seem to back that up I think.
It's the point that I wanted to prove, really - to time fetchall and
Decimal without SQLObject.
> 133167599 function calls (133165268 primitive calls) in 392.615
> CPU seconds
>
> Ordered by: internal time
> ncalls tottime percall cumtime percall filename:lineno(function)
> 1 16.715 16.715 392.589 392.589 t.lowlevel:3(<module>)
This is the entire script - 392 seconds.
> 1 53.209 53.209 295.902 295.902 {method 'fetchall' of
> 'psycopg2._psycopg.cursor' objects}
295 seconds in the most interesting part of the program.
> 9883851 90.187 0.000 242.693 0.000 decimal.py:515(__new__)
243 seconds were spent in Decimal.__new__. I.e., Decimal.__new__ is
called from DB API driver; so we can trust the profiler when it shown us
last time .to_python() calls were fast - they were really fast 'cause they
didn't have a need to call Decimal.
> 9883845 35.014 0.000 42.012 0.000 decimal.py:830(__str__)
> 9883845 21.096 0.000 63.108 0.000 decimal.py:825(__repr__)
This is printing.
> 9884218 25.102 0.000 25.102 0.000 {built-in method match}
> 39536056 20.103 0.000 20.103 0.000 {built-in method group}
> 1 16.522 16.522 16.522 16.522 {method 'execute' of
> 'psycopg2._psycopg.cursor' objects}
> 9883846 6.461 0.000 6.461 0.000 {method 'lstrip' of 'str'
> objects}
> 9885976 4.971 0.000 4.971 0.000 {isinstance}
And some internal stuff.
Well, fetchall + print spans the entire program, so we can see
sqlbuilder is fast. With this (and with more trust in the profiler) we can
return to analyze SQLObject timing.
Oleg.
--
Oleg Broytmann http://phd.pp.ru/ [email protected]
Programmers don't die, they just GOSUB without RETURN.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss