找回密码
 立即注册
楼主: johnsoncodehk

链接器优化: 相同代码折叠 ICF

[复制链接]
发表于 2022-5-11 09:20 | 显示全部楼层
似乎有误解...我是说让他们折叠后仍然有不同的地址不就行了吗
发表于 2022-5-11 09:24 | 显示全部楼层
嗯,我没讲清楚,折叠后只保留一份副本,是写在 text 段的,所以地址是一致的;不同地址的话成了通过 data 段的指针间接调用了
发表于 2022-5-11 09:32 | 显示全部楼层
对于移动端,有一个理论认为,二进制体积越小,应用下载安装量越大
发表于 2022-5-11 09:36 | 显示全部楼层
补充一下,一般认为二进制越大,cpu 的 icache mssing rate 越高,会影响代码性能
发表于 2022-5-11 09:36 | 显示全部楼层
其实他的意思是,链接器再生成一个函数,通过jmp指令跳到实际的函数,这样就不会函数地址相同了。
发表于 2022-5-11 09:37 | 显示全部楼层
感谢指正。我认为层主的意思是:是否可以合并间接跳转的;这个在 all 模式是有考虑的,而 safe 模式没有(保守而为了能够保证正确性)。而你的意思以及后来层主提出的,我认为是:做地址比较时的一种辅助手段,这样目标函数合并不影响地址比较;是不错的提议,ICF 优化目标是二进制体积,多生成函数这样做本身也是对其他一些优化的一种对抗,改变了预期行为,且会提升复杂度。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-11 19:22 , Processed in 0.092845 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表