CSDN 的评论有数字限制?

CSDN 的评论有数字限制?

 

http://blog.csdn.net/pennyliang/archive/2010/11/10/5999933.aspx

 

基于我的知识局限,没有看到过 c 或者 c++ 标准声明 size_t 的访问是原子操作,我觉得这是依赖编译器实现以及底层的硬件体系的。也许有个实现碰巧出现 size_t 需要两次 bus access才能取到完整的值。按照对当前环境体系的操作理解,在没有前提的条件下,就断定“显然是原子操作”,将其推广到更大的范围,难免可能留下瑕疵。同时我们需要考虑到软件的生命周期,否则更换新型号的CPU或者编译器,都可能导致曾经的经典成为日后的致命错误。

更严谨的范例对读者更有益处,也是更为负责的,因此有此提议。靠实验去理解实现,值得推崇。靠实验去猜测,形成新的行为指南,只能说明在类似的实验环境下“可能”正确的成功率比较高。用写出实验例子去反证也非严谨的方式。同样一个程序,即使当前机器实验很多次,结果都正确,但是在超高并发的情况下,很多问题都会暴露。另外CAS的几个+1实现确实不适合用来说明问题。在多核心的机器里面,这种实现可能比最简单的加锁还要慢很多,而且越大并发,cas的失败几率会让这个代码无法完成。

题外话,笔者几个文章里面提到的优化技巧,gcc编译器都有,你可能在作这方面的研究,故意每次g++编译指令都没有 -O 的参数,但是对于入门者来说,却可能造成很大的误解。将 gcc/icc 的优化编译结果反向分析,我们就可以得到很多的底层优化方式。作为编译器优化实现等研究无可厚非,但是提高到日常 linux 编程的技巧,是否不是很恰当?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值