CP.101: Distrust your hardware/compiler combination

CP.101:不要信任你的硬件/编译器组合

 

Reason(原因)

The low-level hardware interfaces used by lock-free programming are among the hardest to implement well and among the areas where the most subtle portability problems occur. If you are doing lock-free programming for performance, you need to check for regressions.

无锁编程使用的低层次硬件接口是最难完美实现,而且很可能发生很多不易察觉的移植性错误。如果你为了性能而进行无锁编程,你需要进行回归检查。

 

Note(注意)

Instruction reordering (static and dynamic) makes it hard for us to think effectively at this level (especially if you use relaxed memory models). Experience, (semi)formal models and model checking can be useful. Testing - often to an extreme extent - is essential. "Don't fly too close to the sun."

指令重排(静态或动态)让我们很难在这个层次进行有效思考(如果你在使用松弛内存模型尤其如此)。经验,(半)形式模型和模型检查都会有用。测试-通常对于-通常针对极端情况-是必不可少的。“不要飞得离太阳太近”。

 

Enforcement(实施建议)

Have strong rules for re-testing in place that covers any change in hardware, operating system, compiler, and libraries.

为重新测试制定可以执行的强有力的规则并保证其覆盖硬件,操作系统,编译器和库的任何变化。

 

 

原文链接​https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#cp101-distrust-your-hardwarecompiler-combination​

新书介绍

以下是本人3月份出版的新书,拜托多多关注!

 

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

 


 

觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!