performance - 将循环不变代码放在循环之外是一种好习惯吗?
问题描述
我正在学习循环不变代码运动作为编译器设计中代码优化的一种方法。使用的示例是:
for ( i=0; i<n; i++ )
buffer[i] = 10*i + x*x;
也可以优化为:
tmp = x*x
for (i=0; i<n; i++ )
buffer[i] = 10*i + tmp;
避免多次计算 x*x。
在课程示例中,这是由编译器后端处理的。
我的问题是,在源代码中明确地执行此操作通常是一种好习惯(并且在某些语言中比其他语言更有利)?
解决方案
推荐阅读
- javascript - 来源 'http://localhost:4200' 已被 CORS 策略阻止
- python - 处理子进程的标准输入和标准输出
- php - 如何在我的 codeigniter 视图中显示 json 输出?
- google-chrome - 是否可以在 Google Chrome Mac TouchBar 上显示扩展信息?如果没有,那么触摸栏上的网络调用呢?
- c - 想检查信用卡号码是否有效
- r - R Markdown 中的统计结果与 Knit 输出不同(所有格式:Word、HTML、PDF)
- c# - 如何使用 PointsF 获得新区域的边界?
- jquery - TinyMCE 在动态生成的文本区域上不可点击和编辑
- python - 如何在 keras 神经网络中正确设置 input_shape?
- google-cloud-platform - 在混合环境(GCP 应用和本地)中使用 Google OAuth2 和 OpenId Connect