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 [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
-~----------~----~----~----~------~----~------~--~---