使用瓶子进行路由的性能优势?

Wes*_*Wes 0 python architecture performance web2py bottle

几年前,我开始开发基于 Web 框架的 Web 应用程序。我当时选择 Bottle 是因为它是最容易启动和快速运行的解决方案,而且我只是在为我的想法构建一个原型。现在,我有几千行代码,我正在寻求进入生产级解决方案。

起初我认为我应该转向一个完整的堆栈框架,例如。当我朝着那个方向前进时,我开始只在需要时使用其他框架的各个部分。例如,我实现了 web2py 的数据访问层 (DAL),以便我可以在,现在我正在考虑使用 web2py 的调度程序来管理作业。然后,我开始使用作为生产级的网络服务器。我尝试了火箭服务器,但我遇到了更多的错误,所以我更喜欢cherrypy而不是火箭。

我开始考虑重写我的代码以完全使用 web2py 的全栈解决方案;然而,重写我的路由函数以完全迁移到 web2py 的时间似乎很重要,我真的对火箭服务器不满意。

我真的很喜欢 Bottle 的简单性,Bottle 使用装饰器函数将路由映射到函数的方式,以及可扩展性的哲学。

我想知道与任何完整堆栈框架相比,使用 Bottle 进行路由在性能方面是否有任何特定优势。

我感谢任何人对此的建议!

ron*_*man 5

根据该基准测试和其他基准测试,Bottle 的性能明显快于其一些同行,在比较 Web 框架的性能时值得考虑:

1. wheezy.web........52,245 req/sec or  19 ?s/req (48x)
2. Falcon............30,195 req/sec or  33 ?s/req (28x)
3. Bottle............11,977 req/sec or  83 ?s/req (11x)
4. webpy..............6,950 req/sec or 144 ?s/req (6x)
5. Werkzeug...........6,837 req/sec or 146 ?s/req (6x)
6. pyramid............4,035 req/sec or 248 ?s/req (4x)
7. Flask..............3,300 req/sec or 303 ?s/req (3x)
8. Pecan..............2,881 req/sec or 347 ?s/req (3x)
9. django.............1,882 req/sec or 531 ?s/req (2x)
10. CherryPy..........1,090 req/sec or 917 ?s/req (1x)
Run Code Online (Sandbox Code Playgroud)

但请记住,您的 Web 框架可能不是您的瓶颈