Thank you Michael Wills for running these benchmarks
DISCLAMER: These benchmarks are prelimiary. Please let us know if you can help us improve SQLAlchemy or Storm benchmarks and if you are willing to donate some time to run benchmarks yourself.
Indeed some of the criticism described in http://rapd.wordpress.com/2007/12/30/interesting-criticism-against-sqlalchemy/ applies to our benchmarks as well, in fact we did not fix the problem described about the Storm benchmarks. We are not sure whether the autocommit feature of SQLAlchemy is off (as should be for a fair comparison). What we know for sure is that every web2py statement results in an execute(query). web2py only commits when db.commit() is called explicitly. We do not call it because we are not benchmarking the database but the ORM.
web2py SQLAlchemy Storm create tables: 00:00.141 00:00.265 00:00.250 populate : 00:00.031 00:00.047 00:00.047 insert : 00:00.953 00:02.656 00:00.203 properties : 00:12.454 00:27.188 00:04.219 expressions : 00:40.234 06:31.640 35:35.031 aggregates : 00:47.297 00:40.532 00:15.157 editing : 00:05.000 00:10.890 00:12.500
WinXP SP2 RAM: 512MB (-8MB shared video memory so 504MB) CPU: P4 3GHz (shows as 2.99GHz in computer properties) HD: Seagate ST340014A Postgresql 8.3 Python 2.5.1 SQLAlchemy 0.4.4 Storm 0.12 Web2Py 1.28