方案一:numba+cython
优点:兼容 cpython 生态
缺点:有 GIL 限制
方案二:pypy
优点:没有 GIL 的限制
缺点:生态不行
方案一:numba+cython
优点:兼容 cpython 生态
缺点:有 GIL 限制
方案二:pypy
优点:没有 GIL 的限制
缺点:生态不行
2 回答3.9k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答724 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
4 回答2.4k 阅读
我的建议——动静分离
你再怎么优化也不太可能超过nginx的C10k解决方案吧?
所以你可以考虑动静分离,将静态资源单独一个location交给nginx响应,例:
你的Python程序专注于动态资源响应部分就行了。而且网络应用绝大多数的场景都是IO密集型,而非计算密集型,所以你用cython还是pypi性能上差别真的没那么大,选生态好的就行了。
P.S: 进阶可以考虑所有的静态资源全部扔到CDN上,因为作为web应用,容量最大的部分都是静态资源,而非动态资源,动静分离之后静态资源的加速几乎能对整个网站的响应速度起到决定性作用!