- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,错误处理和日志记录是通过名为 Error
的类执行的。任何可能需要记录错误或警告的函数或对象方法,都会有一个 Error & error
作为它的最后一个函数参数,并且会调用 Error::report(...)
如果遇到问题。
一个例子是:
float ratioBetweenBounds( float between,
float lowerBound,
float upperBound,
Error & error) // <--
{
if(upperBound != lowerBound){
return (between - lowerBound) / (upperBound - lowerBound);
}else{
error.report(Error::DivideByZero, __LINE__, __FILE__, lowerBound); // <--
return NAN;
}
}
我的问题是,传递这样一个庞大的引用是否会导致每帧调用大约 5,000 次的小函数出现性能问题?我会(并且会!)自己对它进行概要分析,但是要过几天我才能(在路上)编译任何东西。也许很明显它会或不会影响 SO 的性能,并且分析也不是太必要。
到目前为止,这在可读性和调试方面对我来说效果很好,所以如果性能损失微不足道,那么我会很高兴。
(我能看到的唯一开销是添加的分支,但分支预测器应该处理这个问题。它也可能会把一个已经很大的函数翻过来,这样它就不会被内联。尽管在这些事情之外,我真的不知道。至少,它看起来可以与 try
/catch
block 创建的任何小性能相媲美,除了抛出的分支会静态偏见,我假设)
最佳答案
引用通常由编译器实现为隐藏指针,因此您实际上是在函数调用中添加了一个指针参数。每帧 5000 次调用对于现代处理器来说确实不算多。继续分析,但我不会担心它,除非它被证明是一个问题。
关于c++ - 这种错误检查方法在性能上会不会太昂贵了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20986558/
我正在阅读 MongoDB,并试图了解它的最佳用途。我没有看到明确答案的一个问题是哪些操作便宜或昂贵,以及在什么条件下。 你能帮忙澄清一下吗? 谢谢。 最佳答案 人们经常声称 mongodb 的写入速
我正在寻找一个主要来源(或一个非常好的解释)来支持在为 iPhone 编写软件时使用 autorelease 是危险的或过于昂贵的说法。 许多开发者都提出了这种说法,我什至听说 Apple 不推荐它,
我意识到这离微优化领域太远了,但我很想知道为什么调用 DateTime.Now 和 DateTime.UtcNow 如此“昂贵”。我有一个示例程序,它运行几个场景来做一些“工作”(添加到一个计数器)并
我是一名优秀的程序员,十分优秀!