Python web 后端场景静态编译优化应该选用哪对技术组合?

方案一:numba+cython
优点:兼容 cpython 生态
缺点:有 GIL 限制

方案二:pypy
优点:没有 GIL 的限制
缺点:生态不行

阅读 1.2k
2 个回答

我的建议——动静分离

你再怎么优化也不太可能超过nginx的C10k解决方案吧?

所以你可以考虑动静分离,将静态资源单独一个location交给nginx响应,例:

location /static {
    alias /data/webroot/static;
}

你的Python程序专注于动态资源响应部分就行了。而且网络应用绝大多数的场景都是IO密集型,而非计算密集型,所以你用cython还是pypi性能上差别真的没那么大,选生态好的就行了。

P.S: 进阶可以考虑所有的静态资源全部扔到CDN上,因为作为web应用,容量最大的部分都是静态资源,而非动态资源,动静分离之后静态资源的加速几乎能对整个网站的响应速度起到决定性作用!

方案一, 肯定是选生态丰富的,pypy那点性能可以用集群补回来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题