加载中…
个人资料
jamal20Lu
jamal20Lu
  • 博客等级:
  • 博客积分:0
  • 博客访问:92,575
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Incremental Linking 增量链接

(2012-12-02 17:05:36)
标签:

it

分类: 程序员之路
来源:http://msdn.microsoft.com/en-us/library/aa261211

Incremental linking is enabled by default for no optimization and/or debug builds. This is equivalent to having the /incremental:yes option in the linker command line.

Incremental linking is recommended during application development and debugging, though not for the release version of your product. For optimized builds, disable incremental linking. The resulting executable (.EXE) program will run faster without incremental thunks.

In some rare and seemingly random cases, incremental linking can fail because of erroneous relocation bugs. If you have incremental linking enabled and encounter inexplicable linker errors, try turning off incremental linking.

Incremental linking can be turned on indirectly by the linker command option /debug. Incremental linking can be turned off indirectly by the linker command options/map or /pdb:none.


在开发的过程中,在Debug的情况下vs建议使用Incremental Linking,在发布Release版本的时候则要禁掉Incremental Linking,以实现程序的最优化。如果发现在开启Incremental Linking的情况下,发现莫名其妙的编译问题,可禁掉Incremental Linking。



来源:http://www.freepatentsonline.com/5193191.html

A computer-aided software development system includes programs to implement edit, compile, link and run sequences, all from memory, at very high speed. The complier and linker operate on an incremental basis, line-by-line or increment-by-increment, so if only one line is changed in an edit session, then only that line and lines related to it need be recompiled if no other code is affected; linking is also done in a manner to save and re-use parts of link tables and link lists which are not changed from one edit session to another. Scanning is also done incrementally, and the resulting token lists and token tables, and lexical increment tables, are saved in memory to be used again where no changes are made. All of the linking tables are saved in memory so there is no need to generate link tables for increments of code where no changes in links are needed. The compiler is able to skip lines or blocks of lines of source code which haven't been changed. All of the source code text modules, the token lists, symbol tables, code tables, link lists and related data, etc., saved from one compile to another are maintained in virtual memory rather than in files so that speed of operation is enhanced. Also, the object code created is maintained in memory rather than in a file, and executed from this memory image, to reduce delays. A virtual memory management arrangement for the system assures that all of the needed data modules and code is present in real memory in the phase being implemented, with a minimum of page faults and page swapping during the phase, again to enhance operating speed.

增量编译和增量链接是一样的道理,即在代码有改动的部分进行build和link,其他没有被改动的部分则不进行相关操作。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有