> > I am trying out Elixir 0.3.0 over SQLAlchemy 0.3.10 in a Python 2.5
> > environment.
>
> > Are there any known performance issues with Elixir for CRUD (Create
> > Select Update Delete) commands?
>
> Not that I know of. There shouldn't be any overhead (over raw
> SQLAlchemy) after the initial class initialization phase.
>
> --
> Gaƫtan de Mentenhttp://openhex.org

It all depends upon what your performance requirements are.  I have a
large project consisting of C++ for speed-critical simulations, Python
for rapid prototyping, and TurboGears/Pylons for presentation of the
data.  I did some benchmarks a while back to see how everything
stacked up as I was wondering if I was doing everything the hard way
(in C++) instead of using SqlAlchemy, etc.  TurboEntity is the same as
Elixir for these results (I did re-run them with Elixir with the same
results).

The database being tested was a simple table select of a MySQL
database using the MyISAM engine.  Results for reading with InnoDB
were very similar.  I enabled the query cache, so the times reported
below are the best out of 3 queries with the query cache enabled.  All
rows and columns were accessed, but the values discarded.

Based upon these tests, I concluded that for rapid prototyping,
SqlAlchemy is a great fit for where I previously used hand-crafted SQL
queries along with MySQLdb.  However, Elixir is still too slow for
most of my prototypes, so I'm sticking with straight SqlAlchemy.  For
the speed-critical sections, C++ wins hands down and makes much better
usage of my finite hardware resources.

As always, your mileage may vary.  I hope that Elixir gets some
performance enhancements in the future that will bring it more in line
with native SQLAlchemy.

Note that you may need to paste the table into a fixed-font editor for
everything to line up.
 
=============================================================================================================
| Language  | Library                             | Time (s) - 1k
Rows  | Time - 10k Rows  | Time - 100k Rows |
|
=============================================================================================================|
| Python    | SqlAlchemy + ActiveMapper           |
1.325               | 13.028           | 139.669          |
| Python    | TurboEntity                         |
1.295               | 12.927           | 134.829          |
| Python    | MySQLdb + db_row                    |
0.108               | 1.046            | 10.768           |
| Python    | MySQLdb                             |
0.036               | 0.384            | 4.778            |
| Python    | SqlAlchemy                          |
0.061               | 0.392            | 4.062            |
| C         | mysql client                        |
0.010               | 0.020            | 0.170            |
| C++       | Direct API                          |
0.001               | 0.010            | 0.141            |
 
=============================================================================================================







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