是什么原因我会选择C#编译器文件对齐设置超过512个其他?

我可以在MSDN看如何更改文件​​对齐的C#编译(通过项目设置和命令行)。

我用Google搜索,看到的文章解释说,512字节的文件对齐减少.dll文件的大小。 我曾与不同的文件比对测试自己和看到的,是的,它的作用。

我的问题是:

为什么我会永远想使用一个不同的文件alignement? 必须有这何处需要或不会有选择方案?

此外,它有什么作用是什么呢? 在MSDN页面说说板块? 什么是部分?

http://msdn.microsoft.com/en-us/library/0s4tzdf2.aspx

UPDATE

在我自己的调查,我有谷歌“C#文件对齐”,“.NET程序集文件对齐”,等等等等,最终发现:

http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

这是自2002年虽然,所以我不知道它将如何帮助不大。 如果任何人都可以让我知道我应该使用Google ......

--------------解决方案-------------

这是一个相当的技术实现细节。 在开始之前,你首先要明白一个PE32文件在Windows DLL和EXE文件结构,文件格式。 该规范的文章是马特Pietrik的“窥视PE,Win32的移植可执行文件格式之旅内部”。 写于17年前,但仍然相关,可用。

的/ filealign设置是指IMAGE_OPTIONAL_HEADER.FileAlignment字段的值。 它确定如何在一个部分中的原始数据被对准。 A节是文件中的代码或数据一大块。 几乎全部数据的纯.NET程序集的情况。

还有就是文件格式和磁盘之间的关系非常密切。 可执行映像被用作Windows中的内存映射文件的支持文件。 可执行文件是文件映射到虚拟内存地址空间加载。 非常有效的,装载一个DLL仅涉及创建映射,没有实际的数据被从文件中读取。 这发生在一个慵懒的时尚,当进程试图从一个部分读一个字节。 如果它未装入内存的是,产生一个页故障和操作系统从该文件读取4096字节到内存中。 最大的好处是,你不支付数据或不使用的代码。 此外,当你读它第一次读[属性]的原因是昂贵的。

该文件比对的相关性是段中的原始数据是如何排队。 包含机器代码最现代的可执行使用4096字节的取向,一个虚拟存储器页的大小。 这不是包含托管代码组件非常相关,IL仅仅是数据。 这将使其感知使用更小的调整,一个空间浪费少。 512个字节(未千字节)是一个幸福的号码存在,则允许在PE32格式的最小值。

唯一可能的原因,我能想到的添加选项在所有的UI是,相对于其他的编译器C#编译器已经很少编译选项。 “其他”是编译器生成本地代码。 所以,选择是有,因为编译器的选项。 很多的调整都是由[属性]覆盖,很好地使​​编译器命令行短期和活泼的。 但该文件对准任何属性,它需要被已知产生该文件之前,属性将是太迟了。

相反的例子是C ++编译器和连接器的IDE提供19属性页中进行设置。 但仍然没有涵盖所有这些,真的不起眼的人都在“命令行”选项页面进行设置。

分类:C# 时间:2012-01-01 人气:0
分享到:

相关文章

  • 普渡编译器构造工具集(PCCTS):网站,教程,书吗? 2012-11-01

    我是一名大学生,并已要求自己熟悉PCCTS,Purdu编译器构造工具集. 我一直在考虑一个链接到http://www.polhode.com/pccts.html 我必须编写一些基本的程序PCCTS,后来在编译器优化运用所学知识. 因此有此目的可以在谷歌一些结果,但还需要一些时间去通过所有这些,找出有用的东西. 如果有人知道的更多的教程,书籍,网站或关于该主题的一些基本的指导,这将是对我来说非常有帮助. --------------解决方案------------- 也许经过这些链接是的东西你的

  • 在编译器构造,是一个符号一样的令牌? 2014-12-11

    在编译器构造,当你谈论令牌,是一个令牌同样喜欢一个符号/只是一个术语,符号? 经过一番研究,我想明白了,一个令牌与符号表的参考符号,因此某种原因符号/有一些额外的信息的象征? 感谢您的任何clearfication :-) --------------解决方案------------- 令牌不一定在符号表中的符号. 例如,如果一个令牌是保留字,则它不是在符号表中输入. 如果令牌是一个标识符,那么它很可能会在符号表中输入. 举个例子如下声明: char s[100]; 一个词法分析器可以输出以下标

  • 在编译器构造从OCaml中到C的建议书 2015-01-26

    有谁知道在编译器构造了一本书,从OCaml的生成C代码? --------------解决方案------------- 你应该阅读安德鲁·阿佩尔的著作"现代编译器实现在ML". 目标不是C,但由于C是接近组装,它应该是相同的... ;-)

  • 我在哪里可以在C#编译器做什么读了? 2012-07-03

    纵观这个网站我经常看到有人回答这样的问题的答案是"它的工作原理一样,因为编译器替换[事物]与[其他的事情]",所以我的问题是,人家怎么知道/了解吗? 我在哪里可以学习这些东西? --------------解决方案------------- 对于C#编译器是如何理解的代码的最权威来源是C#语言规范. http://www.microsoft.com/download/en/details.aspx?id=7029 另外,下面的博客提供了更多的有识之士到C#语言. 对于任何强制性的阅读谁

  • C ++编译器C2582不会自动生成默认c'tor或=运算符 2012-08-01

    撇开我使用的getter / setter,其中较有经验的C ++的事实 - 程序员不会使用它们我有下面的代码有问题: #include "Player.h" class Entity { public: Entity::Entity(Player& _owner) : owner(_owner) { } Player &get_owner() { return this->owner; } void set_owner(Player &_owner) {

  • 什么是落实在C#编译器最有趣和最有前途的方法? 2013-01-10

    我只是在一个应该持续6个月我的毕业设计的开始. 该项目的目标是实现一个.net编译一个脚本语言. 我有编译器建设作为我的课程主题和我知道的基本步骤如何在一般实现一个编译器,但我们使用野牛和简单的编译器使用GCC作为后端,因此我不知道很多关于实施的编译器在.Net平台. 关于这一主题已经进行了一些研究,我发现代码生成下面的替代性解决方案(我不是在谈论编译器的其它重要部件,就像一个解析器 - 它是超出范围在这里): 直接生成代码使用Reflection.Emit的. 使用通用的编译界面抽象了Refl

  • 通用语言来构建一个编译器 2013-01-28

    由埃里克库的在计算器播客采访的启发,我想建立一个完整的编译器在我的业余时间的学习经验. 我最初的想法是建立一个C编译器,但我不知道它是否会花费太多时间. 我想知道是否有一个较小的通用语言,这将是实现作为第一个编译器的努力比较合适? 或者是一个用C实现可行的合理时间尺度(200小时)? 我打算为目标的CLR. --------------解决方案------------- 我的建议是挑选自己喜欢的语言. 你已经进入它的知识将超过编写编译器为它的难度,一般. 你会是最幸福的编写编译器的年纪大了,小语

  • 什么是实际的编译器建设一些好的资源? 2013-02-14

    重复:学习写一个编译器 今年夏天,我正在编译器与另一名学生作为暑期"自学"等课程. 我们都将在项目中携手合作,但我们收到的最小一流的时间. 相反,我们有每周一次的教授在暑假期间,以显示我们的进展,并要求我们可能已经积累了任何问题,满足. 我和我的搭档也早就决定了要构建一个编译器从开始到结束,因为我没有别的班今年夏天,我们应该有一次像样的数目投入到它. 什么是对〜实用〜编译器构造一些好材料? 我已经拿起龙书,我打算相当仔细阅读的副本. 它应包括大部分我们所需要的理论. 我们应该写什么语言

  • 如何做一个编译器编译一个编译器? 2013-07-17

    从一个高层次的编程背景的人,我有兴趣了解底层编程. 我想知道的编译器是怎么编? 看着在维基的一些文章后,数控机床的代码被认为是最低级的语言,但必须有一个编译器来编译这个机器代码. 是,编译器写的什么语言? --------------解决方案------------- 通常情况下,编译器作者们两条路线之一: 写在其他一些现有语言的编译器整. 这通常是最简单的选择. 编写足够的代码在其他一些语言有一个最小可用的翻译,并使用"脚手架"为基础写的编译器在它的打算编译语言正确. 这是更复杂,通

  • 编译器设计资源 2013-09-30

    家伙什么是最好的在线学习资源编译器设计? Perl的会是一个可行的语言编写一个编译器? --------------解决方案------------- 而不是在网上,正如上面的回答,抓住自己的龙书编译器的副本:原理,技术和工具. 第一版的副本不应该设置你回来太多. 不知道Perl作为首选实施一个编译器,虽然语言. 有些东西不是最佳的网上了解到,和一些编译器设计的复杂性就是其中之一. 为了对这个问题的书籍的列表,看看这个问题. 我选择了它或多或少随机地从很多类似的问题 - 让他们所有的列表,谷歌为

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.372 (s). 10 q(s)