Hi. I'm using Python 2.5.1 + SQLAlchemy + Psyco 1.6 for accelerating Python computations. Everything works ok for SQLAchemy 0.4.4 (50% performance boost), but for SQLAlchemy 0.4.5, 0.4.6 and latest SVN version (0_4 branch) there is a huge slowdown and profiling shows that SA's code takes much time:
ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 98.840 98.840 <string>:1(<module>) 1 0.001 0.001 98.840 98.840 {execfile} 1 0.052 0.052 98.837 98.837 model/bin/run_dbwork.py: 4(<module>) 1479 1.944 0.001 88.724 0.060 /home/users/artur/md/ system/trunk/model/... (_yieldData) 4202 84.182 0.020 85.126 0.020 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/sql/util.py: 7(sort_tables) 2106 2.446 0.001 46.555 0.022 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/mapper.py: 979(_save_obj) 2096 0.133 0.000 42.690 0.020 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/mapper.py: 1226(_delete_obj) 1647 0.303 0.000 9.767 0.006 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/scoping.py: 97(do) 160637 1.331 0.000 3.048 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/unitofwork.py: 605(collection) 17172 0.742 0.000 2.501 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/unitofwork.py: 859(preexecute) 145072 0.992 0.000 1.471 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/unitofwork.py: 521(polymorphic_tasks) 1478 0.012 0.000 1.157 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/session.py: 944(_cascade_save_or_update) 1478 0.027 0.000 1.145 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/session.py: 1236(_cascade_iterator) 1478 0.319 0.000 1.123 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/sql/compiler.py: 625(_get_colparams) 1478 0.497 0.000 1.115 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/mapper.py: 1309(cascade_iterator) 13302 0.588 0.000 0.689 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/sql/compiler.py: 631(create_bind_param) 8868 0.360 0.000 0.494 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/properties.py: 438(cascade_iterator) 1508 0.083 0.000 0.487 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.6-py2.5.egg/sqlalchemy/orm/query.py: 945(iterate_instances) For comparison here is profile stats dump for the same data processed using SA 0.4.4: ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 15.430 15.430 <string>:1(<module>) 1 0.001 0.001 15.430 15.430 {execfile} 1 0.050 0.050 15.427 15.427 model/bin/run_dbwork.py: 4(<module>) 1469 1.827 0.001 13.058 0.009 /home/users/artur/md/ system/trunk/model/... (_yieldData) 2080 2.438 0.001 5.351 0.003 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/mapper.py: 914(_save_obj) 159041 1.253 0.000 2.938 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/unitofwork.py: 620(collection) 4147 0.412 0.000 2.779 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/sql/util.py: 7(sort_tables) 16960 0.726 0.000 2.428 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/unitofwork.py: 874(preexecute) 4288 1.418 0.000 2.347 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/sql/visitors.py: 50(traverse) 1635 0.292 0.000 1.996 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/scoping.py: 97(do) 2067 0.097 0.000 1.478 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/mapper.py: 1152(_delete_obj) 143262 0.971 0.000 1.442 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/unitofwork.py: 531(polymorphic_tasks) 1468 0.309 0.000 1.090 0.001 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/sql/compiler.py: 653(_get_colparams) 1468 0.015 0.000 0.697 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/session.py: 922(_cascade_save_or_update) 1468 0.023 0.000 0.682 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/session.py: 1208(_cascade_iterator) 13212 0.564 0.000 0.664 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/sql/compiler.py: 659(create_bind_param) 1468 0.155 0.000 0.656 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/mapper.py: 1235(cascade_iterator) 8808 0.339 0.000 0.472 0.000 /usr/share/python2.5/ site-packages/SQLAlchemy-0.4.4-py2.5.egg/sqlalchemy/orm/properties.py: 428(cascade_iterator) I have also experienced strange errors with 0.4.6, like calling Python's property "set" method by SA code with argument of type MapperProperty. Any chances to use SQLAlchemy > 0.4.4 and Psyco? --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---