Fastest web framework

Andriy Kornatskyy andriy.kornatskyy at live.com
Wed Sep 26 05:26:50 EDT 2012


Tarek,

Thank you for the response back. Yes, your idea is pretty clear to me. The point is that higher workload you put in your application business logic, repository, backend, whatever... less you will see in final results comparison. This is obvious and we, as technical people, very well understand this (somebody even laugh).

The reality is that not all web applications do heavy CPU computations and/or experience IO delays (due to response from database running a query over table that has no index, let say), some use caches, some split jobs to be run in background, some parallel them... I have to state that simple things must perform really fast to give more room for one that are not so. That in turn makes your infrastructure more effective. Some prefer to add a box, some see that a likely to be a problem further it goes. The good thing - you have a choice, you are not locked, and as result you are responsible for the effectiveness of the system you build today and definitely next one.

Take care.

Andriy


----------------------------------------
> Date: Wed, 26 Sep 2012 11:08:19 +0200
> From: tarek at ziade.org
> To: andriy.kornatskyy at live.com
> CC: python-list at python.org
> Subject: Re: Fastest web framework
>
> On 9/25/12 3:21 PM, Andriy Kornatskyy wrote:
> > Tarek,
> >
> > With all respect, running benchmark on something that has sleeps, etc is pretty far from real world use case. So I went a little bit different way.
> That's not a good summary of what the function does. It does not just
> sleep. It does some I/O and CPU bound tasks. The sleep is here to
> simulate a blocking I/O call, besides the DB calls.
>
> The whole function tries to simulate a real application, unlike printing
> 'Hello World' - to put the stack under realistic conditions.
>
> The multiplication is cached by the processor, but will still push some
> CPU work on every call.
>
> >
> > Here is a live demo (a semi real world web application) that comes with wheezy.web framework as a template:
> >
> > http://wheezy.pythonanywhere.com/
> >
> > I have implemented it in a way that it uses one web framework (wheezy.web) and various template engines (jinja2, mako, tenjin, wheezy.template and wheezy.template with preprocessor)... Please see the following post under `Real World Example` section:
> >
> > http://mindref.blogspot.com/2012/07/python-fastest-template.html
> >
> > Source code here:
> >
> > https://bitbucket.org/akorn/wheezy.web/src/tip/demos/template
> >
> > The real world example shows the difference between template engines implementing the same things. The same applies to web frameworks (more or less depending on your choice).
> >
> > Thanks.
> Great, thanks for the update ! -- that's cool to bench the template
> engines, but this is still not what I had in mind.
>
> What I had in mind was to try each one of the framework with an
> application that does things, and see how the whole stack reacts on high
> load.
>
> But I guess we have different goals - wheezy seems really fast, congrats.
>
>
> Cheers
> Tarek
>
> > Andriy
> >
> >
> > ----------------------------------------
> >> Date: Mon, 24 Sep 2012 13:50:31 +0200
> >> From: tarek at ziade.org
> >> To: python-list at python.org
> >> Subject: Re: Fastest web framework
> >>
> >> On 9/23/12 11:19 AM, Andriy Kornatskyy wrote:
> >>> I have run recently a benchmark of a trivial 'hello world' application for various python web frameworks (bottle, django, flask, pyramid, web.py, wheezy.web) hosted in uWSGI/cpython2.7 and gunicorn/pypy1.9... you might find it interesting:
> >>>
> >>> http://mindref.blogspot.com/2012/09/python-fastest-web-framework.html
> >>>
> >>> Comments or suggestions are welcome.
> >>>
> >>> Thanks.
> >>>
> >>> Andriy Kornatskyy
> >>>
> >> I would try this with a web app that does more than 'Hello World'
> >>
> >> You may argue that you're just trying the server stack, but that's not
> >> realistic because you don't really measure how the server behaves with a
> >> real app.
> >>
> >> Have a look at
> >> https://github.com/mozilla-services/chaussette/blob/master/chaussette/util.py#L188
> >>
> >> (setup_bench and teardow_bench have to be run on startup and tear down
> >> of the server)
> >>
> >> I would be curious to see how things goes then
> >>
> >> Cheers
> >> Tarek
> >> --
> >> http://mail.python.org/mailman/listinfo/python-list
> >
>
 		 	   		  


More information about the Python-list mailing list