社区
工具平台和程序库
帖子详情
如何只对部分代码进行编译优化?
thirdapple
2008-11-22 11:05:00
gcc的编译优化中使用了乱序执行,让我的无锁结构在多线程环境中出错,如果关闭o2代码对于和这部分无关的代码就没办法进行优化了。gcc中有任何的宏命令可以对某一部分代码关闭编译优化么?
...全文
353
8
打赏
收藏
如何只对部分代码进行编译优化?
gcc的编译优化中使用了乱序执行,让我的无锁结构在多线程环境中出错,如果关闭o2代码对于和这部分无关的代码就没办法进行优化了。gcc中有任何的宏命令可以对某一部分代码关闭编译优化么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
K行天下
2008-11-22
打赏
举报
回复
分割文件是一个办法
thirdapple
2008-11-22
打赏
举报
回复
[Quote=引用 1 楼 xhs_lh04 的回复:]
没有
线程,不用锁来同步,会出现意想不到的结果,建议还是加上
没有对局部代码进行优先的选项,抱歉
[/Quote]
嗯,是原子操作,所以是可以控制的,但是现在gcc的编译优化把执行顺序打乱了所以出了问题。
brookmill
2008-11-22
打赏
举报
回复
把源代码拆成两个文件吧,在makefile里一个优化一个不优化
Non_Recursive
2008-11-22
打赏
举报
回复
[Quote=引用 1 楼 xhs_lh04 的回复:]
没有
线程,不用锁来同步,会出现意想不到的结果,建议还是加上
没有对局部代码进行优先的选项,抱歉
[/Quote]
up
xhs_lh04
2008-11-22
打赏
举报
回复
没有
线程,不用锁来同步,会出现意想不到的结果,建议还是加上
没有对局部代码进行优先的选项,抱歉
xiaopoy
2008-11-22
打赏
举报
回复
[Quote=引用 3 楼 brookmill 的回复:]
把源代码拆成两个文件吧,在makefile里一个优化一个不优化
[/Quote]
纯帮顶。
pushregistration
2008-11-22
打赏
举报
回复
up
android2008
2008-11-22
打赏
举报
回复
up
gcc针对
部分
代码
取消
编译
优化
为了应对
编译
优化
可能导致的问题,如增加
代码
大小或影响执行,文章讲述了如何在遇到特定情况时,如在func1函数中,避免将变量放入data段而使用栈空间。通过设置-GCC push_options来取消该函数的
编译
优化
,防止memcpy函数不必要的使用,以保持
代码
正确执行和
优化
目标的一致性。
第四
部分
程序
编译
与
代码
优化
博客内容主要提及了第10章早期(
编译
期)
优化
和第11章晚期(运行期)
优化
,聚焦于程序在不同阶段的
优化
相关内容。
第77
部分
- Linux x86 64位汇编
优化
编译
器
代码
本文详细介绍了GCC
编译
器的三个
优化
级别-O1、-O2和-O3,分别列出了每个级别下启用的
优化
选项,帮助读者理解如何通过调整
编译
参数提升程序性能。
【读书笔记】深入理解Java虚拟机(周志明)(3)第三
部分
虚拟机执行子系统(4)第四
部分
程序
编译
与
代码
优化
本文是《深入理解Java虚拟机》重点摘要,涵盖虚拟机执行子系统和程序
编译
与
代码
优化
两
部分
。介绍了类文件结构、类加载机制、字节码执行引擎等,还阐述了
编译
期和运行期的
优化
技术,如语法糖、即时
编译
优化
等,对比了Java与C/C++
编译
器。
JVM学习笔记(12) 第四
部分
程序
编译
与
代码
优化
第11章 后端
编译
与
优化
本文系统讲解JVM后端
编译
机制,涵盖即时
编译
(JIT)与提前
编译
(AOT)两大范式。重点剖析HotSpot的C1/C2分层
编译
架构、热点探测(方法调用/回边计数器)、JIT
编译
流程,以及四大核心
优化
技术:方法内联、逃逸分析(含标量替换、栈上分配、同步消除)、公共子表达式消除和数组边界检查消除。强调运行时Profile驱动的动态
优化
本质。
工具平台和程序库
24,851
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章