- 2
- 0
- 约3.19千字
- 约 6页
- 2017-02-04 发布于北京
- 举报
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由 于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一 定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在 编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变量缓存到寄存器;调整指令顺序充分利用CPU指 令流水线,常见的是重新排序读写指令。对常规内存进行优化的时候,这些优化是透明的,而且效率很好。由编译器优化或者硬件重新排序引起的问题的解决办法是 在从硬件(或者其他处理器)的角度看必须以特定顺序执行的操作之间设置内存屏障(memory barrier),linux 提供了一个宏解决编译器的执行顺序问题。void Barrier(void) 这个函数通知编译器插入一个内存屏障,但对硬件无效,编译后的代码会把当前CPU寄存器中的所有修改过的数值存入内存,需要这些数据的时候再重新从内存中读出。 2.volatile 总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进 一步可以消除一些代码。但有时这些优化不是程序所需要的,这时可以用volatile关键字
您可能关注的文档
最近下载
- 幼儿园大班语言《是谁嗯嗯在我的头上》课件.pptx
- 高考生物必背85个知识点分析.doc VIP
- 高考生物必背85个知识点总结.doc VIP
- 高考必背的85个重要生物知识点总结.docx VIP
- 2025届高考生物必背的85个重要知识点总结.docx VIP
- 中国文化概况A-Glimpse-of-Chinese-Culture(修订版)Chapter-8.ppt VIP
- 2026年高考生物必背85个重要知识点总结汇编.pdf VIP
- 预防高处坠落事故专项施工方案.docx VIP
- AutoCAD2022实用教程全套完整教学课件.pptx
- Soundcraft声艺Signature 22MTK Outline Dimensions file)说明书用户手册.pdf
原创力文档

文档评论(0)