Instagram 工程师在 PyCon 上分享他们从 python2 迁移到 python3 过程中一个有意思的故事:
当 Instagram 解决了这些奇奇怪怪的版本差异问题后,还有一个巨大的谜题困扰着他们: 性能问题 。
在 Instagram,他们使用两个主要指标来衡量他们的服务性能:
所以,当所有的迁移工作完成后,他们非常惊喜的发现: 第一个性能指标,每次请求产生的 CPU 指令数居然足足下降了 12% !!!
但是,按理说第二个指标 – 每秒请求数也应该获得接近 12% 的提升。不过最后的变化却是 0%。究竟是出了什么问题呢?
他们最终定位到,是由于不同 Python 版本下的内存优化配置不同,导致 CPU 指令数下降带来的性能提升被抵消了。那为什么不同 Python 版本下的内存优化配置会不一样呢?
这是他们用来检查 uwsgi 配置的代码:
if uwsgi.opt.get('optimize_mem', N