我有一个稍微复杂的函数(大约80行代码不含注释),我正在优化它。
作为尝试让性能分析器替我完成工作的一部分,我将两个代码块分别放到了不同的函数中(这只是临时的,等我把���们放回去就好了)。
有趣的是:
我的测试用例需要29.8秒
在我把第一个代码块放到��个单独的函数中后,由于函数调用开销,我看到了小的性能损失。(30.2秒)
当我把第二个代码块放到一个单独的函数中时,我得到了相当大的性能提升,时间缩短至24.2秒
第二个代码块是插入到一个相当大的链表中的,我计划用二叉树或其他东西替换它,但即使如此,这20%的改进对我来说仍然相当困惑。
简而言之:尝试优化代码并注意到将代码块放入单独的函数中可以让性能提高20%。那怎么可能呢?
编辑:已确认在发布版中运行