Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Become the fastest ORM in the world #1071

Closed
motin opened this issue Dec 10, 2015 · 7 comments
Closed

Become the fastest ORM in the world #1071

motin opened this issue Dec 10, 2015 · 7 comments
Labels

Comments

@motin
Copy link
Contributor

motin commented Dec 10, 2015

Propel's basis in code generation makes it possible to optimize the performance specifically to one's data model.

The query builder can pre-generate most common queries directly into the source code.

Also, today the classes are generated in PHP, but it is possible to generate them using zephir.

This makes it possible to one day run propel build and get the generated classes available via a PHP extension. Since this is not even possible with Phalcon or similar Zephir-based ORM's today, this could potentially make propel the fastest ORM in the world one day.

Does this sound feasible or am I hoping for too much? :)

Related: #1062 #426 #478

@SourceCode
Copy link

That's a very interesting idea. I've thought about these types of approaches for faster implementations over the years as well. It would be interesting to see something like this happen if the performance improvements really are there.

@staabm
Copy link
Member

staabm commented Dec 10, 2015

Atm they discuss extensions which can contain code written in php. Even this could get us a bit faster in case the classes would get part of the runtime

@marcj marcj added the Feature label Dec 10, 2015
@marcj
Copy link
Member

marcj commented Dec 10, 2015

Yes, that sounds good, but we need first to finish the data-mapper branch because of

  1. we need unit of work to make bulk-inserts/bulk-updates (which even doctrine doesn't support). This is already a big performance boost compared to other ORMs when dealing with much data.
  2. we need the component based building approach because current huge ObjectBuilder.php and QueryBuilder.php with 6300+2000 LOC are just way to big. Building on top of those beasts now also a C-Extension-builder will definitely be a PITA.
  3. separation of data persisting and entity modell help us here to keep things simple.

@motin
Copy link
Contributor Author

motin commented Dec 10, 2015

@marcj Totally agree. First things first :)

@bpicolo
Copy link

bpicolo commented Dec 17, 2015

Just to throw this out there: Please never compile to Zephir. Additional deps is awful. PHP is fast enough these days.

@marcj
Copy link
Member

marcj commented Dec 17, 2015

Of course not required, but perhaps optional as separate library.

@dereuromark
Copy link
Contributor

Closing for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants