Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #30632

RE: Fastest web framework

Path csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <andriy.kornatskyy@live.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.003
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; 'case.': 0.05; 'frameworks': 0.05; 'url:bitbucket': 0.05; 'framework.': 0.07; 'welcome.': 0.07; 'url:blog': 0.09; 'python': 0.09; 'itself,': 0.09; 'leaks': 0.09; 'prioritize': 0.09; 'sep': 0.09; 'stack,': 0.09; 'used).': 0.09; 'cc:addr:python-list': 0.10; 'yet.': 0.13; 'component': 0.15; 'sat,': 0.15; 'stack': 0.15; '+0300': 0.16; 'agree.': 0.16; 'bigtable': 0.16; 'bonus:': 0.16; 'boundary.': 0.16; 'cause.': 0.16; 'distinct': 0.16; 'framework,': 0.16; 're- run': 0.16; 'read:': 0.16; 'simulated': 0.16; 'tarek,': 0.16; 'templating': 0.16; 'this).': 0.16; 'url:py': 0.16; 'used:': 0.16; 'wsgi': 0.16; 'later': 0.16; 'memory': 0.18; 'load': 0.19; '(not': 0.20; 'skip:- 40': 0.21; 'bit': 0.21; 'thanks.': 0.21; 'required.': 0.22; 'cc:2**0': 0.23; 'example': 0.23; 'ignored.': 0.23; 'mention': 0.23; 'idea': 0.24; 'cc:addr:python.org': 0.25; 'header:In-Reply-To:1': 0.25; 'extend': 0.26; 'plain': 0.27; 'raw': 0.27; 'correct': 0.28; 'run': 0.28; 'post': 0.28; 'app.': 0.29; 'bad.': 0.29; 'interactions': 0.29; 'pile': 0.29; 'them?': 0.29; 'date:': 0.29; 'definition': 0.29; 'points': 0.29; 'source': 0.29; 'framework': 0.30; 'minimal': 0.30; 'url:2012': 0.30; 'function': 0.30; 'code': 0.31; 'implement': 0.32; 'file': 0.32; 'running': 0.32; 'getting': 0.33; 'comments': 0.33; 'from:addr:live.com': 0.33; 'rid': 0.33; 'point.': 0.33; 'another': 0.33; 'updated': 0.34; 'server': 0.35; 'faster': 0.35; 'fastest': 0.35; 'there': 0.35; 'subject:': 0.36; 'but': 0.36; 'url:org': 0.36; 'smaller': 0.36; 'email addr:python.org': 0.36; "didn't": 0.36; 'should': 0.36; 'possible': 0.37; 'one,': 0.37; '(for': 0.37; 'subject:: ': 0.38; 'degree': 0.38; 'from:': 0.38; 'comment': 0.38; 'some': 0.38; 'things': 0.38; 'several': 0.39; 'application': 0.40; 'your': 0.60; 'most': 0.61; 'kind': 0.61; 'here:': 0.62; 'time,': 0.62; 'email name:python-list': 0.62; 'improved': 0.62; 'provide': 0.62; 'different': 0.63; 'world': 0.63; 'more': 0.63; 'url:blogspot': 0.64; 'behavior': 0.64; 'choose': 0.65; 'results': 0.65; 'total': 0.65; 'due': 0.66; 'email addr:live.com': 0.71; 'sounds': 0.71; 'article': 0.78; 'productivity': 0.78; 'heavy': 0.83; 'benchmark': 0.84; 'fast,': 0.84; 'isolate': 0.84; 'isolated': 0.84; 'to:addr:tarek': 0.84; 'url:03': 0.84; 'your:': 0.84; 'alone.': 0.91; 'url:template': 0.91; 'choice.': 0.93; 'url:16': 0.95; 'charset:windows-1251': 0.97
X-Originating-IP [194.44.213.194]
From Andriy Kornatskyy <andriy.kornatskyy@live.com>
To Tarek Ziade <tarek@ziade.org>
Subject RE: Fastest web framework
Date Tue, 2 Oct 2012 16:17:40 +0300
Importance Normal
In-Reply-To <DUB117-W30563FACD45427AB23024091810@phx.gbl>
References <DUB117-W30563FACD45427AB23024091810@phx.gbl>
Content-Type text/plain; charset="windows-1251"
Content-Transfer-Encoding quoted-printable
MIME-Version 1.0
X-OriginalArrivalTime 02 Oct 2012 13:17:41.0087 (UTC) FILETIME=[4D030EF0:01CDA0A0]
Cc "python-list@python.org" <python-list@python.org>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.1723.1349183929.27098.python-list@python.org> (permalink)
Lines 110
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1349183929 news.xs4all.nl 6928 [2001:888:2000:d::a6]:52262
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:30632

Show key headers only | View raw


In order to provide more reliable benchmark, I get rid of application server and network boundary. As a result I simulated a valid WSGI request and isolated calls just to the web framework alone. Also I found interesting to take a look at total number of calls and unique functions used by corresponding web framework.

The post has been updated:

http://mindref.blogspot.com/2012/09/python-fastest-web-framework.html

Isolated benchmark source code is here:

https://bitbucket.org/akorn/helloworld/src/tip/benchmark.py

I should mention several web frameworks experience huge memory leaks in this benchmark.

BONUS: added benchmark for python 3.3 (for the web frameworks that support it) and plain simple WSGI application (for contrast).

Comments or suggestions are welcome.

Thanks.

Andriy Kornatskyy


----------------------------------------
> From: andriy.kornatskyy@live.com
> To: tarek@ziade.org
> Subject: RE: Fastest web framework
> Date: Sat, 29 Sep 2012 12:18:32 +0300
> CC: python-list@python.org
>
>
> Tarek,
>
> My response inline to your:
>
> > You are not getting my point. What happens to weezhy or XXX framework
> > when you are running it in a given stack, under heavy load ?
>
> let me correct you, it is wheezy.web (not `weezhy`).
>
> Tell me your definition of web framework heavy load. If you have one, we
> can try benchmark it.
>
> > There are many interactions that may impact the behavior of the stack -
> > most of them are in the web server itself, but they can be things in the
> > framework too, depending on the architectural choice.
>
> The reason I choose uWSGI is due to minimal possible impact that application
> server may cause. Since this component `equally influence` productivity
> of each framework it can be to some degree ignored.
>
> > And you will not know it with an hello world app. To put it more
> > bluntly, your benchmark is going to join the big pile of hello worlds
> > benchmarks that are completely meaningless.
>
> Can not agree. This is just simple thing. Simple things should run
> fast, no doubt. If you can provide a better idea as to which framework
> calls to put into benchmark, I will be happy extend the benchmark case.
>
> > If you want to prove that weezhy is faster than another py framework,
> > because, I dunno, the number of function calls are smaller ? then you
> > need to isolate this and
> > do a different kind of bench.
> >
> > Have a look at http://plope.com/pyroptimization , it's a good example
>
> The numbers provided in that article are incorrect. They didn't match results
> from the file they provide (result.txt in each framework dir) at the time
> of writing.
>
> I have used that idea to re-run things (isolated benchmark; report with
> total time, total number of calls and number of distinct functions used).
> See here:
>
> https://bitbucket.org/akorn/helloworld/src/tip/benchmark.py
>
> I will update original post a bit later (to let you comment on this).
>
> > Same thing for the raw speed of your templating engine - isolation is
> > required.
>
> Improved bigtable benchmark report by adding total number of calls and
> number distinct functions used:
> https://bitbucket.org/akorn/wheezy.template/src/tip/demos/bigtable/bigtable.py
>
> Original post not updated yet.
>
> > One good read:
> > http://blog.ianbicking.org/2010/03/16/web-server-benchmarking-we-need/
>
> Sounds not so bad. It points to some specific workloads. Any attempt to prioritize
> and/or practically implement them?
>
> Thanks.
>
> Andriy
 		 	   		  

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

RE: Fastest web framework Andriy Kornatskyy <andriy.kornatskyy@live.com> - 2012-10-02 16:17 +0300

csiph-web