Giter Club home page Giter Club logo

py-frameworks-bench's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

py-frameworks-bench's Issues

Missing requests/s metric

The benchmark is missing the number of requests/s. I ran a similar test as the JSON one, and yes flask is faster than aiohttp with those wrk settings. However, aiohttp handles more than 11 times more requests as flask. 4098 vs 359 in my case.

benchmarks do not reflect recommended usage

Several frameworks's apps are written in a manner that does not reflect the usage suggested in their docs.

For example, the FastAPI documentation suggests using File() to have files extracted from forms and injected: https://fastapi.tiangolo.com/tutorial/request-files/. But in the benchmarks the Request.form is used just like in Starlette. This is obviously going to be faster, but then it's not using any of the features the framework provides on top of Starlette. If that's what users were doing, they'd be using Starlette.

I suggest that the apps get restructured to better reflect the documented usage of each framework. That is much more useful to users (and framework developers) and would help highlight issues like tiangolo/fastapi#4187

CON_MAX_AGE not set

The django database connection doesn't have CON_MAX_AGE set, which means that it will make a new database connection every time (the default behaviour), rather than keeping the TCP/IP connection open, which can be very slow.

add a LICENSE?

Hi,

I'd like to fork the codebase to do some improvements and use it to verify some other behavior, but I noticed this project has no license.

can you add a license? If there's no strong preference, MIT would be simplest, but really any license that lets me use the code in a derivative work is sufficient.

Thanks for your time!

Complete benchmarks seem misleading

Since you're varying the ORM based on the http framework the benchmarks seem vary misleading. Some were using pee_wee, some sqlalchemy, and django was using django. Couldn't you make the benchmarks all use pee_wee so you're bench-marking the web delivery part of the framework in isolation of ORM performance and features?

make provision fails

make provision
[make] Run Ansible provision
ansible-playbook /media/cristian/Ddrive/tmp/py-frameworks-bench/deploy/setup.yml -i /media/cristian/Ddrive/tmp/py-frameworks-bench/deploy/inventory.ini -l vagrant -vv
ERROR: problem running /media/cristian/Ddrive/tmp/py-frameworks-bench/deploy/inventory.ini --list ([Errno 8] Exec format error)
make: *** [provision] Error 1

Некорректное тестирование Sanic

Проще показать, внимание на скриншоты.

gunicorn -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8080 app:app — самый тормозной вариант, не понимаю что происходит, и не хочется разбираться, но на каждый запрос принтится лого, отсюда и результат.

Screenshot from 2022-02-07 02-28-06

gunicorn -k sanic.worker.GunicornWorker -b 0.0.0.0:8080 app:app — более адекватный вариант, опять же, разбираться лень, но принтится access_log, что влияет на результат, как отключить, я сходу не нашёл.

Screenshot from 2022-02-07 02-28-57

sanic --host 0.0.0.0 --port=8080 --workers=1 app:app — дефолтный и наиболее корректный способ запуска, дающий результат на уровне blacksheep.

Screenshot from 2022-02-07 02-30-26

И, собственно, blacksheep, для сравнения:

Screenshot from 2022-02-07 02-32-28

AIOHttp benchmark stated incorrectly

The ORM benchmark seems to state the 50% time for AIOHttp incorrectly - the value listed in the table is actually the min (as shown on the graph). The value for 50% is rather 902.72. Screenshot below for details:

image

make provision failure on git, make

I'm getting a TASK [bench.setup git]

which fails because it Failed to find required executable git.

I did a vagrant ssh and apt-get install git and then it passed, only to fail on make in TASK [bench.setup command].

Framework benchmark results were run on AWS T2 instance

T2 instances inherently rely on excess CPU cycles and therefore do not provide for a reliable performance baseline upon which benchmarks can be run accurately.

Considering running the benchmarks on a dedicated private instance.

json test unfair

Some framework use simplejson as default(flask), some use built-in json module(tornado).

Release a 2018/2019 edition

It would be awesome if the Python's Web Framework Benchmarks were updated to reflect the current state of affairs (2018/2019).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.