c++ - 将值复制到常量中以进行优化

标签 c++ algorithm variables optimization constants

假设您的首要目标是执行速度,然后是代码整洁度,最后是资源使用。

如果在算法的某个时刻,一个变量(例如一个 double 变量)不会再改变(但您仍然会多次读取它),您会把它复制成一个常量值吗?

最佳答案

如果你想让你的代码更清晰,无论如何,将你的值复制到 const double const_value = calculated_value;,但是编译器非常擅长跟踪依赖关系,而且这不太可能(假设你正在使用一个现代的、相当有能力的编译器)因为你这样做,代码会更快或“更好”。编译器极有可能会相信您想要第二个变量这一事实,因此会进行复制,并因此使代码变慢。

与往常一样,如果性能对您的应用程序很重要,请为您的特定代码制定一个“之前和之后”的比较基准,因为在 Internet 上阅读页面或在 SO 上询问与对您的代码进行基准测试是不同的。

关于c++ - 将值复制到常量中以进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16279136/

相关文章:

c++ - rand中的C++/OpenMP错误

c++ - 与 mex 函数相比,为什么 str2double 在 matlab 中这么慢?

algorithm - 创建所有可能组合的有效算法是什么?

algorithm - 使用随机元素进行二分查找

android - 在 Android 上的 libgdx 中,如果应用程序被杀死,我该如何保存游戏状态?

c++ - 函数的返回类型可以从函数内部获取吗?

algorithm - O(n log n) vs O(n)——时间复杂度的实际差异

jquery 函数外部变量

c++ - 声明与 const 变量和成员函数相同的标识符

c++ - 重复调用PyRun_SimpleFile出现Segmentation fault