怎样禁止优化

博主在优快云写博客当作笔记。在验证随机存取迭代器中std::distance(begin, end)和end - begin执行速度时,想各执行1000000次计时,但编译器会大幅优化end - begin的代码,无法测出真正执行时间,于是想研究禁止编译器特定优化的办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每天都要搞到2~3点,上午一般来说10点还得起来,睡眠有点太少了。按说每天7个小时也差不多了,本科的时候11点熄灯,早上6,7点起来算来也差不多。但是那时候整个一精力充沛,每天踢球弹琴旷课打游戏(还经常包夜)啥也没落下。看来年龄还是起了一定作用的

既然选在csdn写blog,还是来点技术吧。写这个东西感觉比较怪,不知道该以给别人看的心态来来写还是以给自己看的心态来写。想想还是当作自己一个笔记吧

昨天看std::distance的代码的时候,突然想验证一下看是否对于随机存取迭代器来说distance( begin, end )和直接用end - begin一样快(当然是release版优化之后),第一时间跳进我脑袋的想法是各执行1000000次计时看是不是一样长(可能我汇编比较差,后来想到可以直接看编译后的汇编码发现就是完全一样的),结果想了很多办法似乎都没有办法避免编译器将end - begin执行1000000的代码大幅优化,也就是说没有办法测出其真正的执行时间,所以就想研究一下有没有什么办法禁止编译器进行某些特定的优化?VC选项里面应该没有,至少没有那么细。

回头找些资料来看看,今天太晚了(太早了?)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值