gcc:为什么文字的转换没有优化?
我正在用 c 语言为 iphone 编写一个游戏,在遇到一些性能问题后,我决定使用工具来检查瓶颈在哪里,我发现文字的转换没有得到优化。
例如:
if(x == (float)3) {....}
如果我这样写,运行速度会更快:
if(x == 3.0f) {....}
为什么编译器没有优化它?
我在发布模式下使用 gcc。
I'm coding a game for iphone in c, and after running into some performance problems I decided to use instruments to check where the bottlenecks are, and I found out that casts of literals are not being optimized.
For example:
if(x == (float)3) {....}
runs faster if I write it like this:
if(x == 3.0f) {....}
Why isn't that optimized by the compiler?
I'm using gcc in release mode.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Soooorry,正如评论所说,我查看了目标代码,是相同的。
Xcode Instruments 为您逐行提供所花费的时间量,我认为它不是 100% 可靠。
Soooorry, as the comments said, I looked at the object code and is the same.
Xcode instruments gives you line by line the amount of time spent, I see it's not 100% reliable.