d如何减小大小

原文

//empty.d:
void main() {

}
dmd -de -w empty.d

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

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

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

posted @   zjh6  阅读(27)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示