我有一个python脚本。可以说http://domain.com/hello.py
,它只打印“你好,世界!”。我可以预编译一个python脚本吗?
是否可以预编译这个Python文件?
我每秒获得约300个请求,并且编译的开销也很高。在Java中,服务器可以轻松处理,但为了计算,Python工作起来要容易得多。
我有一个python脚本。可以说http://domain.com/hello.py
,它只打印“你好,世界!”。我可以预编译一个python脚本吗?
是否可以预编译这个Python文件?
我每秒获得约300个请求,并且编译的开销也很高。在Java中,服务器可以轻松处理,但为了计算,Python工作起来要容易得多。
的问题不在于你需要“预编译”巨蟒,问题是,你正在尝试使用正常的CGI脚本的东西来执行Python脚本...
真正的答案是使用一个更好的Web后台不是简单的CGI来运行Python
我建议按出场顺序如下
1. nginx + gnunicorn
2. apache2 + mod-wsgi
3. something else
4. anything else
...
n-1. fcgi
n. cgi
我知道这心不是一个真正的答案,完全是基于舆论
Python代码在CPython(标准Python)解释器首次运行时自动编译。 You can pre-compile it if you want to optimize the first request,但通常没有必要。除此之外,您需要将您的Python代码转换为Python C/cython模块。有some tools可帮助您将Python代码转换为Python模块,如果这是您想要的路线。
还有被称为SciPy一个Python模块,通常用于科学计算与数据科学应用程序,它提供了一个名为Weave工具,它允许您为嵌入式C/C++代码到Python代码允许代码的某些关键性能部分使用编译的C/C++代码运行。
我不认为这真的解决OP问题(这是可能在标题和OP中错误地陈述了......)“预编译”python不是有助于OP的实际解决方案...并且我不认为你可以使用任意数量的scipy真正优化'print'hello world'或numpy –
Python在导入时将'.py'文件编译为'.pyc',这意味着它只能执行一次。是什么让你认为这是“编译的开销”,这会让你的应用程序变慢? – univerio
@univerio,我不输入任何东西,我只有一行“print'hello world!”我试着用Jmeter测试负载,它每分钟只能处理约2000个请求。我的Java servlet可以处理大约70k每分钟的数据查询计算等。还有什么可能是这个原因? – user3605780
这更可能是你试图将python文件作为正常cgi服务的工件....尝试至少fcgi ...但你真的应该使用nginx + gnuicorn或某种缓存...... apache + mod_wsgi也会工作......服务他们作为正常CGI的问题(也许FCGI ...林不知道)是它不得不推迟一个全新的解释器环境为每个请求 –