Fantastic.

could you make one more benchmark. Same web2py code but bytecode
compile the app.

Massimo

On Dec 21, 11:27 pm, vince <[email protected]> wrote:
> another one with totally identical setup
>
> web2py:
> model:
> -------
> db=SQLDB('sqlite://storage.db')
> db.define_table('page',
>     SQLField('title'),
>     SQLField('body','text'))
> -------
> controller
> -------
> def index():
>     mypages=db().select
> (db.page.id,db.page.title,orderby=db.page.title)
>     return dict(pages=mypages)
> -------
> view
> -------
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
>   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd";>
> <html>
>   <head>
>     <title>QuickWiki 6</title>
>   </head>
>   <body>
>     <div class="content">
>       {{include}}
>     </div>
>   </body>
> </html>
> -------
> {{extend 'layout.html'}}
> <h1 class="main">Title List</h1>
> <ul id="titles">
> {{for page in pages:}}
> <li>
> <span>{{=page.title}}</span>
> &nbsp;[{{=A("visit",_href=URL(r=request,f='show',args=[page.id]))}}]
> </li>
> {{pass}}
> </ul>
>
> pylons:
> model:
> -----
> import quickwiki.lib.helpers as h
>
> from pylons import config
> from sqlalchemy import Column, MetaData, Table, types
> from sqlalchemy.orm import mapper
> from sqlalchemy.orm import scoped_session, sessionmaker
> Session = scoped_session(sessionmaker(autoflush=True,
> transactional=True,
>                                       bind=config
> ['pylons.g'].sa_engine))
> metadata = MetaData()
> pages_table = Table('pages', metadata,
>     Column('title', types.Unicode(40), primary_key=True),
>     Column('content', types.Unicode(), default='')
> )
> class Page(object):
>     content = None
>
>     def __str__(self):
>         return self.title
> mapper(Page, pages_table)
> -------
> controller
> -------
> from quickwiki.model import Page
> from quickwiki.lib.base import *
>     def list(self):
>         c.titles = [page.title for page in Session.query(Page).all()]
>         return render('/list.mako')
> --------
> template
> --------
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
>   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd";>
> <html>
>   <head>
>     <title>QuickWiki 6</title>
>   </head>
>   <body>
>     <div class="content">
>       ${next.body()}
>     </div>
>   </body>
> </html>
> ----------------
> <%inherit file="base.mako"/>
> <h1 class="main">Title List</h1>
> <ul id="titles">
> % for title in c.titles:
> <li>
> <span>${title}</span>
>  &nbsp;[${h.link_to('visit', h.url_for(title=title, action="index"))}]
> </li>
> % endfor
> </ul>
> -----------------
>
> benchmark
>
> web2py:
> Server Software:        Apache/2.2.3
> Server Hostname:        10.8.8.18
> Server Port:            80
>
> Document Path:          /welcometest/wiki
> Document Length:        895 bytes
>
> Concurrency Level:      1
> Time taken for tests:   4.428 seconds
> Complete requests:      100
> Failed requests:        0
> Write errors:           0
> Total transferred:      129000 bytes
> HTML transferred:       89500 bytes
> Requests per second:    22.58 [#/sec] (mean)
> Time per request:       44.278 [ms] (mean)
> Time per request:       44.278 [ms] (mean, across all concurrent
> requests)
> Transfer rate:          28.45 [Kbytes/sec] received
>
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    1   1.8      0      18
> Processing:    38   44   6.1     42      72
> Waiting:       38   44   6.0     41      70
> Total:         39   44   6.4     42      72
>
> Percentage of the requests served within a certain time (ms)
>   50%     42
>   66%     43
>   75%     44
>   80%     48
>   90%     54
>   95%     57
>   98%     66
>   99%     72
>  100%     72 (longest request)
>
> pylons:
> Server Software:        Apache/2.2.3
> Server Hostname:        10.8.8.17
> Server Port:            80
>
> Document Path:          /wiki/page/list
> Document Length:        895 bytes
>
> Concurrency Level:      1
> Time taken for tests:   5.191 seconds
> Complete requests:      100
> Failed requests:        0
> Write errors:           0
> Total transferred:      109219 bytes
> HTML transferred:       89500 bytes
> Requests per second:    19.27 [#/sec] (mean)
> Time per request:       51.906 [ms] (mean)
> Time per request:       51.906 [ms] (mean, across all concurrent
> requests)
> Transfer rate:          20.55 [Kbytes/sec] received
>
> Connection Times (ms)
>               min  mean[+/-sd] median   max
> Connect:        0    0   1.8      0      19
> Processing:    47   51   3.1     51      64
> Waiting:       47   51   3.1     51      64
> Total:         47   52   3.6     51      70
>
> Percentage of the requests served within a certain time (ms)
>   50%     51
>   66%     52
>   75%     54
>   80%     54
>   90%     57
>   95%     58
>   98%     64
>   99%     70
>  100%     70 (longest request)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to