它似乎有所不同。一个很慢,而且很快。 只是因为[导入演示]?为什么?
慢一点:
[demo_app.py]
import web
urls = ('/(.*)', 'demo.hello')
app = web.application(urls, globals())
application = app.wsgifunc()
if __name__ == "__main__":
app.run()
[demo.py]
from multiprocessing import Manager
tmp = Manager()
class hello:
def GET(self,name):
return 'Hello world'
[与uwsgi一起运行] uwsgi -d demo.log --http 127.0.0.1:8893 -w demo_app -p 1
[curl http://127.0.0.1:8893 /]非常慢
OK(快速):
[demo_app.py]
import web
import demo
urls = ('/(.*)', 'demo.hello')
app = web.application(urls, globals())
application = app.wsgifunc()
if __name__ == "__main__":
app.run()
[demo.py]
from multiprocessing import Manager
tmp = Manager()
class hello:
def GET(self,name):
return 'Hello world'
[与uwsgi一起运行] uwsgi -d demo.log --http 127.0.0.1:8893 -w demo_app -p 1
[curl很快
---------------------
在'慢'中,我strace(linux)子进程(uwsgi forked)。在uwsgi写完内容之后,它会epoll_wait 60s。 epoll_wait函数中的参数epoll_event为空。看下面的图片: strace log
答案 0 :(得分:0)
使用快速版本,您可以在程序启动时导入演示(即在uwsgi启动期间)。因此,在HTTP请求期间没有额外的开销。
如果速度较慢,则会在第一个HTTP请求(即卷曲期间)导入演示。一旦加载,时间相同。