介绍
这是我几周(+/- 4 周?)以来第一个基于编程的博客,因为动荡的金融市场和地缘政治局势需要我 100% 的注意力。毕竟,当市场崩溃时,这是在金融市场寻找机会的最佳时机。我的主要背景是对冲基金专业人士,如果您对金融方面的内容感兴趣,请查看我的金融页面。
三田
好了,财务方面的事情就讲完了,在这里我想向您介绍我刚刚发现的一个基准测试工具: Mitata 。我喜欢做基准测试,因为我最感兴趣的主题之一是优化,这意味着能够精确测量迭代之间的变化非常重要。
天哪,我什至尝试优化我的 Python 代码(通过用于通用目的的Codon和用于表格数据处理的Fireducks )。对于那些使用 Python 的人,我强烈建议您检查 Codon 作为解锁 Python 内的 C 引擎的方法,并检查 Fireducks 来加速您的 Pandas 代码,使其比 Polars 性能更高。
米塔有什么特别之处
我通常使用效果很好的hyperfine ,但是 Mitata 的特别之处在于它的图形演示选项。
以下是超精细基准演示的示例:这很好,而且效果很好!
检查这些 Mitata 屏幕截图:检查日期:3 月 21 日——是的,我有很多积压的订单要发布!归咎于动荡的金融市场哈哈…
Mitata 的图形呈现更加美观,还有上图中未显示的其他可视化效果。当前可用的可视化有:条形图、箱线图和线图。
任何基准测试工具最重要的特征之一就是准确性,正如 Github 页面中提到的:Mitata 的准确性低至皮秒。从我使用它的两个月来看,我对准确性没有任何问题,而且我非常喜欢它提供的可视化效果!
Mitata 不仅仅适用于 JS/TS
是的,Mitata 在 JS/TS 社区中最流行(Bun 和 ElysiaJS 经常使用 Mitata 生成基准),外部人员也可以使用它,尤其是那些使用编译程序的人员。
上面是我如何使用 Mitata 的示例:
- 创建程序路径。
- 确定我们正在使用的功能(条形图和摘要)。
- 在代码块内执行基准函数。
- 运行程序。
就是这样!在 Mitata 中生成漂亮的基准测试非常简单,您可以在 Mitata github 页面中找到许多其他方法。
结论
和 Mitata 一起玩一下,看看你是否喜欢它!下面是 hyperfine 和 mitata 在同一组程序上运行基准测试的屏幕截图:
正如您所看到的,结果是相似的。我将继续使用 hyperfine 和 mitata 来验证我正在做的任何基准测试,它们都是很棒的工具!使用 mitata 时需要注意:例如上面的基准测试:测量不同语言在处理循环数据结构方面的性能(已知这是 Rust 的弱点 – 因此为什么 Rust 在工作台上表现最差),程序的顺序很重要……第一个通常会得到更好的数字,而最后一个会得到更差的数字。
这就是为什么我通常将性能最差的程序放在第一位的原因 – 以确保它们不会受到任何影响。但实际上这意味着我给稍后启动的其他程序设置了障碍,哈哈!所以是的,这就是为什么我现在使用 hyperfine 和 mitata -> 来交叉检查结果。如果 mitata 解决了这个问题,我倾向于使用 mitata 作为我的主要基准测试工具!