i modified a few things in this test, to get a better picture of the
speed we really care about.  as it turns out, not much changes.  the
change is, to insure that the mappers are compiled using the compile()
step, and then start the timer, using the "time" module in python.  so
heres the typical results I get,  with the internal test time denoted
by "total time":

SA 0.3 latest trunk:

STARTING NOW
2006-12-04 13:52:18.174562: Loading sis
2006-12-04 13:52:20.371373: 377 sis loaded
2006-12-04 13:52:20.372281: Creating indicators
2006-12-04 13:52:20.552949: 127 indicators created
2006-12-04 13:52:20.554647: registering...
2006-12-04 13:52:20.619494: ok done !
total time 2.44655799866

real    0m3.315s
user    0m2.364s
sys     0m0.388s

using 0.2.8:

STARTING NOW
2006-12-04 13:52:39.104842: Loading sis
2006-12-04 13:52:40.367581: 377 sis loaded
2006-12-04 13:52:40.368476: Creating indicators
2006-12-04 13:52:40.591517: 127 indicators created
2006-12-04 13:52:40.593057: registering...
2006-12-04 13:52:40.621836: ok done !
total time 1.51871609688

real    0m2.398s
user    0m1.488s
sys     0m0.382s

still, these are not earth-shattering time differences (whereas
200-300% is)...the architecture of  0.3 versus 0.2.8 with regards to
the construction of mappers has been reworked to be a lot simpler and
clearer, and therefore much easier to work with, with regards to
insuring that features work correctly (like mapper options) and that
new features can be added.  so theres a little more decision making
going on (such as in the interfaces package) whereas in 0.2.8 the
structure of mappers was a lot more byzantine but produced a slightly
smaller call-chain in some cases (notably, 0.3 has a two-or-three hop
path from MapperProperty->eager loading code, whereas in 0.2.8 it was
all just one object.  although i tried reducing that distance as a test
and it made no speed difference at all...typical python).

i dont have time to get more deeply into the cause of these differences
right now but im hoping there is something somewhat obvious going on,
possibly the MapperExtension calls are adding some overhead that can be
reduced.   but trust me, the architecture of 0.2.8 was a total mess
compared to 0.3, and it doesnt help anyone if the code is so confusing
that nobody except me can work with it....i still think we are better
off.


--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to