Ticket #412 (new enhancement)
ORM Performance Issues
| Reported by: | tronics | Owned by: | somebody |
|---|---|---|---|
| Priority: | must | Milestone: | 1.2 |
| Component: | Other | Version: | 1.0.0 Stable |
| Keywords: | Cc: |
Description
After seeing performance issues in real life as well as profiling, we should address to this.
Simple Testcase (akrohn):
Generated around 4000 rows for the projects table of the sample database and was curious what the profiler would say. (used QSqlServer2005Database)
For a Project::LoadAll?() it got me this for a total time of 21.569 ms.
Qcubed ORM is generating a lot of objects when doing eg. a LoadAll?()
This has also proven to hamper performance on other ORMs like Doctrine.
In this thread the problem is described in detail:
http://qcu.be/content/qlistbox-holds-all-objects-making-it-slow-certain-situations-possible-performance-improvemen
We should enhance the performance.
There are several ideas:
* Using Arrays instead of Objects will definitly increase the perfromance by a very siginificant factor (with doctrine it is like 1:4.5) (tronics)
* Reduce calls to GetColumn?() and use InstantiateDbRow?() instead (akrohn)
Off topic: * Make ORM agnostic (see different ticket: http://trac.qcu.be/projects/qcubed/ticket/402) (tronics)
