从20秒到0.5秒:一个使用Rust语言来优化Python性能的案例
哪方面工作的好:
哪方面工作的不好:
虽然 Rust 对我们的工作帮助很大,毫无疑问,有很多需要改进.特别是,用于导出 C ABI(并使其对 Python 有用)的基础设施应该有很大改进空间.编译时间也不是很长(译者的话,不是很长的意思是可能够我沏杯茶,怀念 go 的编译速度).希望增量编译将有所帮助. 下一步其实我们还有更多的改进空间.我们可以以更高效的格式启动缓存,比如一组存储在内存中的结构体而不是使用解析 JSON.特别是,如果与文件系统缓存配对,我们几乎可以完全消除加载的成本,因为我们平分了索引,这可以使用 mmap 非常有效. 鉴于这个好的结果,我们很可能会评估 Rust 更多在未来处理一些 CPU 密集型的业务.然而,对于大多数其他操作,程序花更多的时间等待 IO. 小结虽然这个项目取得了巨大的成功,但是我们只花了很少的时间来实现.它降低了我们的处理时间,它也将帮助我们水平扩展.Rust 一直是这个工作的完美工具,因为它允许我们将昂贵的操作使用本地库完成,而且不必使用 C 或 C ++(这不太适合这种复杂的任务).虽然很容易在 Rust 中编写 source map 解析器,但是使用 C / C++ 来完成的话,代码更多,且没那么有意思. 我们确实喜欢 Python,并且是许多 Python 开源计划的贡献者.虽然 Python 仍然是我们最喜欢的语言,但我们相信在合适的地方使用合适的语言.Rust 被证明是这项工作的最佳工具,我们很高兴看到 Rust 和 Python 将来会带给我们什么. 译者注:不熟悉 source map 的同学请看阮一峰的这篇文章 ?http://www.ruanyifeng.com/blog/2013/01/ javascript_source_map.html 文章出处:高可用架构 (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |