Thanks for your replies.
I've continued investigating my test case, by profiling a part of my test case
(processing only one date, means one extract/build/store cycle). I've put the
results as attachements (I've only kept the first significative lines of
profiling stats files).
While migrating to SA 0.3.1, I had to modify some of my code to integrate the
changes due to the integrated logging facility of SA (not present in the SA
2.8 revision I used before). This gives some clues to investigate in this
way.
The profiling results shows (if I understand correctly) there's a lot of time
spent formatting string which is not displayed (DEBUG, INFO levels), as I
disabled logging message < level WARNING. Particularly, the function
instance_str from the sqlalchemy.orm.util module appears at first place,
while sorting by total time or ncalls. The same for id and hex, which are
called by instance_str. This func is called in several log message (ncalls is
huge).
Thus I tried to remove some of the logs in SA, so no log formatting is done.
Running/timing my whole test gives the following results:
Using 0.2.8
real 2m19.755s
user 1m45.403s
sys 0m2.104s
Using 0.3.1
real 14m28.188s
user 13m3.053s
sys 0m9.161s
=> 6-7 times slower
Using 0.3.1, no log
real 9m8.644s
user 7m50.517s
sys 0m5.824s
=> 3-4 times slower, that's better
Disabling seems to speed up SA, and seems to be part of the "bottleneck". The
other is... hum... I don't have any idea... Maybe you'll have some watching
the profiling results.
Hope it helps. Let me known if you want some other benchmark/profiling
results.
As attachements:
- sprof28: sorted profiling results, using SA 0.2.8
- sprof31: sorted profiling results, using SA 0.3.1
- sprof31_log: sorted profiling results, using SA 0.3.1 after removing
log
(mainly in orm.{util,attributes,mapper,strategies}).
> also, try out the trunk as I just made a major improvement to cascade
> performance yesterday.
OK, I try this now.
> oh, i forgot - theres one thing that could produce significant speed
> changes, which is if youre using any PickleTypes anywhere. the
No PickleTypes used...
Cheers,
--
Sébastien LELONG
[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
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/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---