[疑难] D语言生成文件咋那么大?

wibrst 2007-05-23
拷的tutorail的代码:

// init_var.d
import std.stdio;

int nMagic=42;
char[] pswd = "b$#a0df2";

void main(){
writefln( "Magic number: ", nMagic);
writefln( "Password: " , pswd);
}

结果一编译 112,156字节!太大了吧。

另一个最简单的:
void main(){
printf( "hello!!!!");
}

我分别用Turbo C和D编译,
C生成9,467字节,
D生成75,804字节!

这个是C的8倍多!!!!!!!!
qiezi 2007-05-23
turbo c现在还有人在用亚。。21世纪了,怎么还有人对于上百K的东西感觉意外呢?

最简单的D程序至少要包括基本的运行时系统比如GC,异常、Object类、RTTI、数组及操作、线程等,turbo c编译出来的9K你可以想一下能包括多少东西。

oldrev 2007-05-23
恩,教育阿....
wibrst 2007-05-23
qiezi 写道
turbo c现在还有人在用亚。。21世纪了,怎么还有人对于上百K的东西感觉意外呢?

最简单的D程序至少要包括基本的运行时系统比如GC,异常、Object类、RTTI、数组及操作、线程等,turbo c编译出来的9K你可以想一下能包括多少东西。



朋友,咱不用说别的,看看常用的taskmgr.exe吧!

试试这个:dir  %systemroot%\system32\taskmgr.exe
我这里wondows XP,显示是:
2004-08-08  11:33           122,880 taskmgr.exe
               1 个文件        122,880 字节
显然跟init_var.d 的112,156字节相差无几。

当然可以理解这个taskmgr.exe会用到其它dll,
但是taskmgr.exe这个主程序会不只打印两行文字这么简单吧!
oldrev 2007-05-24
试试
dmd -O -release init_var.d

这应该能让 exe 小一点

在用80年代的TurboC的同学应该是算还没入门
tomqyp 2007-05-24
wibrst 写道
qiezi 写道
turbo c现在还有人在用亚。。21世纪了,怎么还有人对于上百K的东西感觉意外呢?

最简单的D程序至少要包括基本的运行时系统比如GC,异常、Object类、RTTI、数组及操作、线程等,turbo c编译出来的9K你可以想一下能包括多少东西。



朋友,咱不用说别的,看看常用的taskmgr.exe吧!

试试这个:dir  %systemroot%\system32\taskmgr.exe
我这里wondows XP,显示是:
2004-08-08  11:33           122,880 taskmgr.exe
               1 个文件        122,880 字节
显然跟init_var.d 的112,156字节相差无几。

当然可以理解这个taskmgr.exe会用到其它dll,
但是taskmgr.exe这个主程序会不只打印两行文字这么简单吧!


其实你引用的qizi话就已经说的很清楚了,VC编译你用/mt试试估计也不比D小
qiezi 2007-05-24
你的tc程序太大了,我用gcc编译一个才4K多,赶紧换吧朋友。

不再进行这类解释工作了,没有任何意义。
goulb 2007-06-03
用解释型语言<20byte
Global site tag (gtag.js) - Google Analytics