??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩一区二区免费视频,久久精品国语,亚洲国产日韩精品http://www.shnenglu.com/danoyang/zh-cnSun, 24 Aug 2025 02:29:06 GMTSun, 24 Aug 2025 02:29:06 GMT60一ơ关于旨在降低编译时间的整改工作Qvc++Q?/title><link>http://www.shnenglu.com/danoyang/archive/2006/07/03/9310.html</link><dc:creator>天爬?/dc:creator><author>天爬?/author><pubDate>Mon, 03 Jul 2006 07:43:00 GMT</pubDate><guid>http://www.shnenglu.com/danoyang/archive/2006/07/03/9310.html</guid><wfw:comment>http://www.shnenglu.com/danoyang/comments/9310.html</wfw:comment><comments>http://www.shnenglu.com/danoyang/archive/2006/07/03/9310.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/danoyang/comments/commentRss/9310.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/danoyang/services/trackbacks/9310.html</trackback:ping><description><![CDATA[׃工程的文件的日益庞大和第3方库(ACE Loki Boost{等)的用增?br />我所工作的项目系l构建时间从最初的3分钟变ؓ现在?分钟<br />E序员的机器配置已经很不错了Q?? 的主?g的内存,但是常常׃一个小的修改导?分钟甚至更长的编译时间来验证效果?br /><br />按照《Joel on software》的说法Q其直接后果是可怕的Q?br />E序员们在这8分钟内无所事事Q只有查看网,或者qqmsnQ打断先前的思\从他们的上下文环境里面脱M出来Q离开了“顺势工作时间”,{到他们~译好了验证再修改的时候,他们又得׃的旉来回到刚才的思\<br /><br />“顺势工作时间”大致意思就是说2个不q箋的半时的效果远不如一个连l沉的1时的工作效果,如果一个h不能q箋沉浸的思考,那么他就很可能陷入在不停的上下文环境切换和浅表思考当中。h的多U程处理和机器是一L环境的切换不能够不考虑<br /><br />所以,在当前机器配|已l没有什么提升空间的情况下,我在目l内部组l了一ơ整Ҏ动,旨在降低~译构徏旉<br /><br /><br />1?strong>目标</strong>Q将完全重新~译旉?分钟降低?分钟以下<br />2?strong>原则</strong>Q通过和主E序的沟通,q参考了《CQ+ coding Standards》出了一下几条整改原?<br />     首先是关于include的,因ؓ包含头文件相当于代码复制到本文件来~译Q而头文g又经常是用来被别人包含的Q所以工E文件多了,每个文g都有include链(包含的文件又include了其他文ӞQ该链条不会止步于你工程Q而会延C所有用的W?方库里面<br /><br />     A.<strong>能够L的include去掉?br /></strong><br />     B.<strong>能够?/strong>cpp<strong>里面include的头文g不要在头文g里面include?br />     </strong>说明Q尽量去掉每个cpp会被串v来的头文件膨胀的机?br /><br />     <strong>C.能够用前向声明的׃要includeQ头文g里面也是一?br /></strong>     说明Q在头文仉面用前向声明然后保存指针或者引用,在具体实现的cpp里面再包含头文gQ虽然看h和《CQ+ coding Standards》?a href="/flyingxu/archive/2006/06/23/8908.html"><font color="#333333">Make header files self-sufficient</font></a>”有些冲H(前两天另外cppblog一位朋友讲q?a href="/flyingxu/archive/2006/06/23/8908.html">http://www.shnenglu.com/flyingxu/archive/2006/06/23/8908.html</a>Q但是在一些核心的.h(被很多类include?里面作改造工作,q是能够收到很大的降低编译时间效果,而付出的代h是原来只需要包含该头文件就可以~译成功的cpp需要额外包含一些头文g?br /><br />举个例子Q?Foocd文g使用了前向申明保存了AcdBcȝ指针或者引用ؓ成员变量Q在Foocȝcpp里面才包含A和B的头文gQ而当Cc需要用FoocL候包含Foocȝ头文Ӟ但是操作中又需要调用A的成员函敎ͼC不同时包含A的头文g的花׃出现~译p|?br /><br />虽然表面上是让代码更加复杂了Q但是除却带来降低编译时间的好处之外Q代码也在强q你q行解耦合Q如果说你cpp里面需要包含的头文件越多,说明你这个类需要知道的对象p多,你可以乘机检查一下自q代码又没有不必要的耦合Qؓ什么这个cpp需要知道那么多的本来可能属于别的类的细?....<br /><br />      D?strong>把大多数模块都要使用的库文g或者稳定类的头文ginclude攑ֈ预编译头文g“stdafx.h”里?br />      </strong>说明Q由于预~译头文仉面include的内容只会compile一ơ而被link多次Q把一些常用类攑ֈq里会降低很多编译时_但也不能乱来Q要点在?“大多数”和“稳定”,如果一个头文gl常变化Q他的一ơ小改动都会引v整个工程rebuildQ哪怕只是一个注释,因ؓ所有的cpp文g都包含了stdafx.h而stdafx.h又包含了q个Ҏ变动的头文g?br />      <br />      <strong>E.使用Pimpl惯用?br /></strong>      说明Q关于Pimpl大家可以查下资料Q《CQ+ coding Standards》里面也有讲解,基本上就是采用一个私有的前向x的stuct指针把所有protect成员都封装v来v?基本上是一个最l极的解x案,但是Ҏ们现有架构改造太大,不敢全面实行Q我们只选择了数个最有h值的c进行了攚w,打算以后在其他项目里面再全面应用?br /><br /><strong>3。实?/strong>Q?通过半个时的沟通,让项目组E序员了解原则,q取结队修改的方式来降低引入新bug的风险,在以通过原有单元试用例的条件下Q进行修改-试Q提交的q代?strong>   <br /><br />4。结果:   ~?/strong>译时间降低到?分钟以内。。。虽没有辑ֈ预期Q但也算有效果,没有完全达标的主要原因还是没有完整的试Ҏ包括单元试和验收测试,怕有些改动过大媄响系l健壮性,局部放弃了一些实施的原则?br /><br /><br />把这个整改的工作写出来,一斚w作个记录Q另外一斚w希望和大家讨论,怺多多交流Q)<br /><br /><br />psQ?br />希望有过cM工作的朋友加我的<br />MSNQitso2_at_msn.com<br />大家多多沟?img src ="http://www.shnenglu.com/danoyang/aggbug/9310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/danoyang/" target="_blank">天爬?/a> 2006-07-03 15:43 <a href="http://www.shnenglu.com/danoyang/archive/2006/07/03/9310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vs2005 fstream 不能打开中文路径名文件的问题!http://www.shnenglu.com/danoyang/archive/2006/05/23/7523.html天爬?/dc:creator>天爬?/author>Tue, 23 May 2006 00:49:00 GMThttp://www.shnenglu.com/danoyang/archive/2006/05/23/7523.htmlhttp://www.shnenglu.com/danoyang/comments/7523.htmlhttp://www.shnenglu.com/danoyang/archive/2006/05/23/7523.html#Feedback3http://www.shnenglu.com/danoyang/comments/commentRss/7523.htmlhttp://www.shnenglu.com/danoyang/services/trackbacks/7523.htmll过排查最l定位在fstream 打开"含中文\?的文件时候会出现fail的情?br />本来不相信vs2003q渡?005会有q个问题,但是l过试验证实了该问?br />我新建立一个exe来测试该问题

 1#include "stdafx.h"
 2#include "testiostream.h"
 3#include <string>
 4#include <fstream>
 5
 6
 7BEGIN_MESSAGE_MAP(CtestiostreamApp, CWinApp)
 8END_MESSAGE_MAP()
 9
10CtestiostreamApp::CtestiostreamApp()
11{
12}

13
14CtestiostreamApp theApp;
15
16BOOL CtestiostreamApp::InitInstance()
17{
18    CWinApp::InitInstance();
19    std::ifstream iput;
20    iput.open("F:\\中文.txt");
21    ASSERT(!iput.fail());
22    return FALSE;
23}

vs2003不需要作M讄可以就可以成功
但是vs2005下每ơ都会失败在断言?查找了一些网上资?例如
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371229&SiteID=1
发现但凡是uinicode的\径都是有该问题的.
解决Ҏ??br />1.W一个用vs2005默认的unicode setq在所有字W串外面面加上_T() 或者_TEXT?代h是原来所有不W合unicode规范的地方你都必d?
2.使用not set 或?mutibyte set" q在E序初始化的时候调用setlocale()如下

BOOL CtestiostreamApp::InitInstance()
{
     setlocale(LC_ALL,
"Chinese-simplified");
    CWinApp::InitInstance();
    std::ifstream iput;
    iput.open(
"F:\\中文.txt");
    ASSERT(
!iput.fail());
    
return FALSE;
}
可以解册问题

上述引用的ms论坛q接基本讲清楚了该问?但是׃我前几日搜烦中文相关信息时?实在未发现有用之内容,故记录下?希望有相同问题又不思其解的朋友可以花Ҏ?

]]>
subversion 配合 finalbuilder ?svn info 中文操作pȝ取变量的问题 ! http://www.shnenglu.com/danoyang/archive/2006/05/18/7348.html天爬?/dc:creator>天爬?/author>Thu, 18 May 2006 06:29:00 GMThttp://www.shnenglu.com/danoyang/archive/2006/05/18/7348.htmlhttp://www.shnenglu.com/danoyang/comments/7348.htmlhttp://www.shnenglu.com/danoyang/archive/2006/05/18/7348.html#Feedback2http://www.shnenglu.com/danoyang/comments/commentRss/7348.htmlhttp://www.shnenglu.com/danoyang/services/trackbacks/7348.html最q研I自动化构徏pȝ(持箋集成),最l发现finalbuilder十分之好?/p>

Ҏ|上

http://blog.dream4ever.org/dirt/archive/2005/12/20/79946.drl 

q篇文章,初步作了一?由subversion 的post-commit 触发的自动更新所有相关代码编?q把~译l果以及信息发送给相关人员的邮件的finalbuilder工程,目的是期望所有程序员能够L一U提交可~译代码的习?

其中需要用CU叫?subversion info 的action cd, 其原理大概是调用 subversion/bin 里面?svn.exe 加上参数 info 然后从标准输Z匚w相关信息取得特定数据攑ֈ 指定的变量中,但是其action始终不能执行成功,更别提保存我需要的变量?

l过一pd试验,估计是由于svn在中文操作系l上q回的是cM下面的中文信?/p>

C:\Program Files\Subversion\bin>svn info D:\LocalSvnForDailyBuild\dest
路径QD:\LocalSvnForDailyBuild\dest
地址(URL)Q?a >http://192.168.1.100:3115/dest
Repository Root: http://192.168.1.100:3115/dest
案?UUIDQ?7b214da-b8ec-df4b-aac3-16e2c895fbbd
修订版:666
节点U类Q目?br />调度Q正?br />最后修改的作者:medicer
最后修改的修订版:666
最后修改的旉: 2006-05-18 11:58:03 +0800 (星期? 18 五月 2006)
属性最后更? 2006-05-15 10:41:52 +0800 (星期一, 15 五月 2006)

而finalbuilder期望的估计是英文的输?所以匹配不了导致失?/p>

l过几番试验

最后把subversion 目录 C:\Program Files\Subversion\share\locale\zh_CN\LC_MESSAGES\subversion.mo 文字信息文g删除掉后,svnq回都用了默认的英?而finalbuilder也终于运行成? 最后一ơ提交者提交时间都能够正常取到!

没有什么技术含?只是在这里记录下?希望遇到相同问题的朋友可以搜索得?不用再折腾?/p>

]]>
þùҹƷһ| պһþþþþ| þ99Ʒþþþþò | þþžѾƷ6| ˳ŷþ| þþƷavӰԺ | ˾þں2019| ޹Ʒ˾þ| AþþƷ| ŷƷ˿þþĻ | 99þֻоƷ| ݺɫþþһ | þԭƷ| 99þ99ֻѷѾƷ| Ʒ˾þþ| þþþ޾Ʒ˵| ӰһѾþþþþþþ | һŷƬþ| þþƷav鶹ͼƬ| þѴƬ| þþþþҹƷ| 97Ʒ˾þô߽| ˾þۺϾƷAVר | ޹Ʒþ| AëƬþþþƷëƬ| þùƷƷ| ŷһþþƷ| þþþþþƷѿSSS| þþƷձҰ | ݺɫþۺ_| ƷһþaaaƬ| þþɫۺϾɫ99| 2020þþƷۺһ| þþ99Ʒһ| re99þþƷ99| þ99ֻоƷ66| þþƷ99þþ㽶| ƷžžþƵ| þþþƷҰ| þþ91뾫ƷHD| ۺϾþþþþ|