测试两个框架的效率。逻辑相同,都是map "/" to handler,然后这个handler里render template index.html (继承自base.html),渲染模版都是用jinja2

web.py

import web
from web.contrib import template

render = template.render_jinja("/templates", encoding="utf-8")

urls = (
    '/', 'index'
)

class index:
    def GET(self):
        return render.index()

app = web.application(urls, globals())
application = app.wsgifunc()

Flask

from flask import Flask
from flask import render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template("index.html")

application = app

测试

本次配置Nginx + uWSGI,然后用ab压测:ab -c 100 -n 200 http://localhost:8080/

结果:

  • web.py: 550 requests / sec
  • flask: 1200 requests / sec

这速度差一倍!web.py这么坑吗。。。