- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Memory Ordering at Compile Time》.pdf
13-6-27 Memory Ordering at Compile Time
preshing on
programming
Memory Ordering at Compile Time
June 25, 2012
Between the time you type in some C/C++ source code and the time it
executes on a CPU, the memory interactions of that code may be
reordered according to certain rules. Changes to memory ordering are
made both by the compiler (at compile time) and by the processor (at run
time), all in the name of making your code run faster.
The cardinal rule of memory reordering, which is universally followed by
compiler developers and CPU vendors, could be phrased as follows:
Thou shalt not modif y the behavior of a single-threaded
p rogram.
As a result of this rule, memory reordering goes largely unnoticed by
programmers writing single-threaded code. It often goes unnoticed in
multithreaded programming, too, since mutexes, semaphores and events
are all designed to prevent memory reordering around their call sites. It’s
only when lock-free techniques are used — when memory is shared
between threads without any kind of mutual exclusion — that the cat is
finally out of the bag, and the effects of memory reordering can be plainly
observed.
Mind you, it is possible to write lock-free code for multicore platforms
without the hassles of memory reordering. As I mentioned in my
introduction to lock-free programming, one can take advantage of
sequentially consistent types, such as volatile variables in Java or C++11
atomics — possibly at the price of a little performance. I won’t go into
detail about those here. In this post, I’ll focus on the impact of the compiler
on memory ordering for regular, non-sequentially-consistent types.
Compiler Instruction Reordering
As you know, the j ob of a compiler is to convert human-readable source
code into machine-reada
您可能关注的文档
- 《LG DL立式多级离心泵》.pdf
- 《Lifetime Portfolio Selection under Uncertainty the Continuous Time Case》.pdf
- 《Linear System Models for Ultrasonic Imaging Application to Signal Statistics》.pdf
- 《Linux Socket 编程》.pdf
- 《Linux Socket编程(不限Linux)》.pdf
- 《Linux 用户管理工具介绍》.docx
- 《linux_Socket_函数集》.doc
- 《Linux_socket_编程入门》.doc
- 《Linux_Socket培训课件》.ppt
- 《linux_socket学习》.pdf
最近下载
- Unit 7 reading Family money management 课件-2024-2025学年译林版七年级英语上册.pptx VIP
- 2023年可行性研究报告财务分析全套计算表格(共18个附表,带公式链接自动计算,操作简单)--银行贷款或债券用.docx
- 国开(浙江)2024年《个人理财》形考作业1-4答案.docx
- 生涯人物访谈(精选15篇) .pdf VIP
- 2024年部编版六年级上册语文期末专题复习——日积月累.pptx VIP
- 学堂在线生活英语听说(2024秋)期末复习题答案.docx
- 打造诗意教育文化 成就师生幸福人生.doc
- 应用弹塑性力学习题解答.pdf VIP
- 船舶应用甲醇乙醇燃料指南2022-CCS规范指南.pdf
- 食品微生物学(鲁东大学)智慧树知到期末考试答案2024年.docx
文档评论(0)