gpt4 book ai didi

c++ - 是否值得将局部变量设为静态以防止不断重新创建?

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

<分区>

假设我在 C/C++ 中有一个调用非常频繁的函数(假设它连接到一个每秒至少超时 10 次的计时器)并且该函数需要使用给定的变量/容器(整数或可能是一个字符串或一个数组)。现在,很自然地,在内存中创建这个变量的过程会消耗一些处理器时钟;因此,一次又一次地运行相同的功能意味着我将失去一些“处理器时钟滴答声”来多次执行完全相同的事情。这可以通过将该变量设为全局变量、函数类的成员或 static 来防止:在任何这种情况下,变量/容器将只创建一次,并且许多“处理器时钟滴答”用于总是做同样的操作会被保存。

我的问题是:这个操作真的值得吗(就性能而言)?换句话说,将变量创建为全局变量、类成员或作为 static 是提高(即使只是一点点)代码性能的实际方法,还是有其他方法可以可能轻易扼杀任何可能的改进? (例如,static 变量可能总是在堆上而不是在堆栈上创建,并且由于第一个比第二个慢,这最终会破坏这种策略的性能)或者有没有了解事物的“全局规则”,因为它取决于许多具体问题,例如正在使用的处理器、编译器所做的优化以及变量/容器的类型,因此只有逐案研究的基准才能真正告诉区别?

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