在分析我的应用程序并运行顶部时,我看到了
Showing top 10 nodes out of 31 (cum >= 0.12s)
flat flat% sum% cum cum%
13.93s 63.00% 63.00% 13.93s 63.00% runtime.duffcopy
我很难知道它何时以及为何被调用,以及是否有什么可以改善这一点?您是否需要查看这些调用所在的函数,或者是否有任何我应该考虑的一般经验法则?
我已经读过,命名的返回值可以改善这一点,但它在测试很多条件(返回true或false)时非常重要,所以不知道实现它是否是一个好主意。
由于
答案 0 :(得分:2)
想想我刚解决了。我看了一下装配输出,发现我有一个
for _, v := range c.Items
一个Item是一个相对较大的对象,所以我用
替换了上面的循环for index := 0; index < len(c.Items); index++
并使用直接访问对象,如c.Items [index]。 Top现在显示:
350ms 4.85% 60.47% 350ms 4.85% runtime.duffcopy
整体执行时间从12秒减少到4秒。非常好:))