gpt4 book ai didi

c++ - 全局变量和对象变量之间的速度差异

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:28 26 4
gpt4 key购买 nike

访问全局变量还是对象变量更快?

在C++中,我指的是

::foo

this->foo

在 x86 汇编器中,这基本上转化为

mov eax, offset foo

对比

mov eax, dword ptr[edx+foo]

两种情况下的所有数据都应该在缓存中。

(我知道差异很小,通常应该选择使代码更简单的那个;但在这种情况下,实际上没有其他差异,并且所讨论的代码可能会被调用 50 亿次在时间限制下,所以我不妨选择稍微快一点的。)

最佳答案

您需要同时测试和计时。

但是,执行此操作时要知道您在应用中做出的其他决定会对性能产生比这更大的影响数个数量级

在人眼看来,全局访问速度更快,但是编译器决定将内容放在哪里,以及处理器如何决定缓存内容,最终将决定哪个更快。

测试并计时。如果您在数百万次运行后在一个重要的应用程序中发现有意义的差异,我会感到震惊。

关于c++ - 全局变量和对象变量之间的速度差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3775887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com