我打算用Python来开发一个Web应用程序.任何人对python的加速器有什么想法?(如eAccelerator或apc for php)如果没有,有没有办法缓存预编译的python字节码?关于python和php之间性能比较的任何想法(假设db/network延迟相同)
提前致谢.
这有一个诀窍.
它被称为mod_wsgi.
它的本质就是这样.
对于"静态"内容(.css,.js,图像等),将它们放在一个目录中,这样它们就可以被Apache服务,而不会让你的Python程序知道它们已被发送.
对于"动态"内容(主HTML页面本身),您使用mod_wsgi分叉在Apache之外运行的"后端"进程.
这比PHP快,因为现在有几件事情正在进行中.Apache已将请求分派给后端进程,然后继续处理下一个请求,而后端仍在运行第一个请求.
此外,当您发送HTML页面时,后续请求由Apache处理,而您的Python程序不知道或关心正在发生的事情.这导致了巨大的加速.与Python的速度无关.一切与整体架构有关.
只要你做的琐碎量工作,在你的"主脚本"(一个你直接调用python,并且得到了__name__的__main__),你不必担心"高速缓存预编译的Python字节码":当你import foo,foo.py被保存到磁盘(同一目录)as foo.pyc,只要你的目录是可写的,所以已经很便宜的字节码编译只发生一次而且"永远之后"Python将foo.pyc直接加载到每个新进程中import foo- 在一个进程内,每个import foo除外第一个是快速查找内存中的sys.module字典(字典).Python中的核心性能理念:确保每一个实质性代码都在其中发生def模块中的语句 - 在主要脚本中没有任何模块顶层,或者esp.内部exec和eval陈述/表达! - ).
我没有PHP与Python的基准测试,但是我注意到Python在每个新版本中都会得到非常明显的优化,所以如果你想看到"紧致",请确保你比较一个最近的版本(理想的2.7,至少2.6)蟒蛇".如果你还没有找到足够快的速度,cython(一种设计用于直接编译成C语言的Python方言,从而进入机器代码,有一些限制),今天是有选择地优化那些分析表明你需要它的模块的最简单方法.
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |