链接分配的性能含义是什么
What's the performance implication of chaining assignment
我有两个Reset()
函数。与[1]相比,[2]是否有任何性能影响?
[1]
void Reset(){
_a = 0;
_b = 0;
_c = 0;
_d = 0;
}
[2]
void Reset(){
_a = _b = _c = _d = 0;
}
一如既往,当事情很重要时,你应该根据经验进行测试,而不是仅仅依靠理论推理。
然而,在这种情况下,我想这两个代码片段在编译后会变得相同,所以没有区别。
至少在典型情况下是这样。例如,如果您的变量属于具有属性的类型
- 给它赋值是很便宜的
- 从该类型的另一个实例复制成本很高
那么,除非优化器足够聪明,否则链式分配的成本会高得多。
(反之亦然,如果分配整数很昂贵,但复制分配很便宜)
相关文章:
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 不同的类或结构初始化方法之间的性能差异是什么?
- 并行性能不佳的原因是什么?
- 标准库容器最简单、性能差的哈希类是什么?
- 与保留模式GUI相比,使用直接模式GUI的性能含义是什么?
- GSL 的预期 (cond) 对运行时施加的性能影响是什么?
- F#性能:是什么让这个代码如此缓慢
- 将特征矩阵转换为 c 数组以便我可以使用 gsl 的性能高效方法是什么
- 链接分配的性能含义是什么
- 造成这种性能差异的原因可能是什么
- 函数指针:从性能的角度来看,简单的规范使用是否不好?如果是这样的话,c++11的替代方案是什么
- 将字符串写入文件的最具性能的方法是什么
- 使用 std::vector<boost::shared_ptr<Base_Class>> 或 boost::p tr_vector 的性能注意事项是什么<Base>
- OpenMP线程多于工作对性能的影响是什么?
- 用c++估计代码的时间性能最准确的方法是什么?
- 这样的继承对性能的影响是什么?
- 查找仅在性能测试下发生的堆损坏的最佳方法是什么?
- 在保持良好的面向对象设计的同时重用代码以提高性能的最佳方法是什么?
- 测试值是否在阈值范围内的最佳方法(性能方面)是什么
- strand.post 和strand.wrap之间的性能差异是什么?