c++调用函数和性能
C++ calling function and performance
我假设是一个普通的函数调用,
void Example(int i)
{
i=2;
cout << i;
}
int main()
{
int i=1;
example(i);
cout << i;
}
实际上是复制变量,因此在Example()中创建另一个实例,使用双内存(如果我是对的)。
那么,在线程和重载环境下,它会对性能产生很大的影响吗?它总是最好使用指针,还是应该通过引用传递更好地告诉调用函数内存在哪里?
通常应该按值传递基本类型,除非需要在函数内部对其进行更改。如果需要修改传递的变量,或者传递大对象,可以通过引用传递:
void Example(SomeBigType& i)
{/*Do something with i*/}
如果需要传递一个大对象,但不需要修改它,则通过const-reference传递:
void Example(const SomeBigType& i)
{/*...*/}
对于这类事情,你应该避免使用指针,而坚持使用引用。
相关文章:
- 如何比较两个函数的速度和性能
- 调用不在基类中的派生类函数而不进行动态强制转换,以最大程度地提高性能
- 函数局部静态变量:从性能角度来看的优点/缺点
- C++ 将函数指针与最佳性能相结合
- 为什么使用默认构造函数"{}"而不是"= default"存在性能变化?
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- 隐式转换函数的返回对象时是否会影响性能?
- 虚拟函数调用的性能作为 for 循环中的上限
- 如何提高对 std::函数侦听器的分发性能?
- 性能函数调用与乘以 1
- std::函数有性能问题,如何避免?
- isspace 函数的性能警告,从 int 转换为布尔值
- C++函数名称对于性能来说太长
- 性能 - 使用字符串构造函数与使用串联
- if-else 与三元函数调用性能
- 加快 R 性能或将 R 函数转换为C++函数
- 递归函数和性能在C++
- 性能:否则如果 vs if 在已经返回的函数中
- C++构造函数性能
- 每帧的性能函数调用