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

Provide concrete examples of what tortoise improves on #131

Closed
xsduan opened this issue May 3, 2019 · 2 comments
Closed

Provide concrete examples of what tortoise improves on #131

xsduan opened this issue May 3, 2019 · 2 comments

Comments

@xsduan
Copy link

xsduan commented May 3, 2019

So I stumbled upon this library and it seems interesting, though from an end user looking at usage I really don't see the difference between this and async-on-top ORMs, other than just taking the readme's word for it.

I don't know if it would go over my head, but it would be nice to have an example provided of an instance where tortoise could potentially be faster, more responsive, etc on async over, let's say, peewee-async, which has a very similar API.

@grigi
Copy link
Member

grigi commented May 3, 2019

Hi Shane

Good points, a lot of what was written in the readme was very relevant when this project started, but has become less relevant over the last year. Back then there was no ORMs that met the basic flexibility requirement of being able to change DBs and with an async interface that wasn't absolutely terrible.
I know of at least one good alternative now.

The real benefit, I suppose is higher concurrency over less DB connections, which is unfortunately a crapshoot as we have an unsolved context related issue. (see new_pool and concurrent branches)

For benchmarks, I did some at https://github.com/tortoise/orm-benchmarks#results-sqlite which was mostly so that we could find performance bottlenecks and fix them. It only puts us as second fastest in that set of ORMS, losing to Pony ORM (which is a very nice ORM, imho). It was also the only async orm that met the criteria at that time, but I should add any other working options I can find.

Performance has not been a huge criteria until we feel we are complete enough. (which we aim for v1.0).
Also I have not set up the benchmark to use MySQL/PostgreSQL yet, as it was mostly to find bottlenecks, of which the current known ones that can be improved are:

  • Model.__init__
  • Queryset.resolve_filters
  • converting fields to DB types

@grigi grigi mentioned this issue May 20, 2019
72 tasks
@grigi
Copy link
Member

grigi commented Mar 11, 2020

Have made several documentaion updates, hopefully it is more clear now

@grigi grigi closed this as completed Mar 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants