0
点赞
收藏
分享

微信扫一扫

d如何减小大小


​​原文​​

//empty.d:
void main() {

}
dmd -de -w empty.d

空代码,却有​​869KiB​​.如何减小?

这是正常的,默认你有很多​​类型信息​​​(允许​​动态自省​​​的静态数据),在隐式导入​​object.d​​​中的代码,运行时(如用于​​GC​​​的代码).
除了使用​​​-betterC​​​,真的可以摆脱它,但会看到所有使默认主程序变大的东西在​​实际程序​​​中很有用.
只是目前,​​​D​​​还没有那么"​​随用随付​​".

问题是​​druntime​​​,需要支持许多​​D特性​​​,它很大且默认是​​完整链接​​​的.​​链接器​​​可​​去掉​​​未使用函数,但即使在空程序中,在​​main​​​引入​​大部分​​​函数前也要做很多工作:
1,初化​​​浮点设置​​​,处理信号,​​stdout​​​和​​stderr​​​ 2,解析​​--DRT​​来配置垃集的​​命令行选项​​.
3,运行​​模块构造器/单元测试​​ 一个目标是让​​druntime​​更加"按需付费",但​​进展​​缓慢.同时,如果可不用很多需要​​运行时​​的​​D特性​​,你可用​​-betterC​​,​​文档​​.
使用​​LDC2​​编译器,可用​​--link-defaultlib-shared​​ ,在多个​​程序​​共享时,可重用.最后,可查看​​运行时​​的自定义版本,如​​LightWeightDRuntime​​,​​见此​​ 如果​​编译速度​​和​​细节​​不重要,可用带有​​-O1​​参数的​​ldc2​​.


举报

相关推荐

0 条评论