我正在开发一个小框架,里面充满了各种实用程序--越小越好,这样它就不会膨胀到使用它的可下载程序的大小。有没有工具可以显示我的方法、接口和类的字节大小?
(我一直在删除各种类以查看文件大小的变化,但由于某些原因,DLL始终是4KB的倍数,因此我不能确切地说出给定的类有多大,更不用说方法了。无论如何,这种方法很麻烦,因为当我删除一块代码时,我还必须删除依赖于它的任何代码。)
我之前问过这个问题,for C++ (结论是:没有,但在Linux中有一个有用的shell命令)。
发布于 2011-04-11 06:09:50
当您编辑内容时,文件不会改变大小的原因是因为PE格式的每个部分都与特定的边界对齐。(例如,.text部分通常从偏移量0x1000开始),其他部分根据其内容的大小进行对齐。它们之间是'\0‘的填充,因此当文件被安装程序压缩时,空间将被有效地消除。
令人怀疑的是,你是否需要担心你的方法的大小,因为它们通常在几十个字节的量级。每个方法的元数据都会占用更多的空间。与重写方法相比,缩短变量名和字符串字面量可以节省更多的空间。
发布于 2011-04-11 06:01:21
尝试反射。在MethodInfo类中有一个方法来获取MSIL表示:http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.getmethodbody.aspx
发布于 2011-04-11 06:00:15
MSIL会显示这些信息(当反编译成.NET时,每条指令都会显示一个“行号”,这是从方法开头开始的偏移量(以字节为单位))
https://stackoverflow.com/questions/5615005
复制相似问题