青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

2006年7月3日

由于工程的文件的日益龐大和第3方庫(ACE Loki Boost等等)的使用增多
我所工作的項(xiàng)目系統(tǒng)構(gòu)建時(shí)間從最初的3分鐘變?yōu)楝F(xiàn)在的8分鐘
程序員的機(jī)器配置已經(jīng)很不錯(cuò)了,3。0 的主頻1g的內(nèi)存,但是常常由于一個(gè)小的修改導(dǎo)致5分鐘甚至更長的編譯時(shí)間來驗(yàn)證效果。

按照《Joel on software》的說法,其直接后果是可怕的:
程序員們在這8分鐘內(nèi)無所事事,只有查看網(wǎng)頁,或者qqmsn,打斷先前的思路從他們的上下文環(huán)境里面脫離了出來,離開了“順勢工作時(shí)間”,等到他們編譯好了驗(yàn)證再修改的時(shí)候,他們又得花不少的時(shí)間來回到剛才的思路

“順勢工作時(shí)間”大致意思就是說2個(gè)不連續(xù)的半小時(shí)的效果遠(yuǎn)不如一個(gè)連續(xù)沉浸的1小時(shí)的工作效果,如果一個(gè)人不能連續(xù)沉浸的思考,那么他就很可能陷入在不停的上下文環(huán)境切換和淺表思考當(dāng)中。人的多線程處理和機(jī)器是一樣的環(huán)境的切換不能夠不考慮

所以,在當(dāng)前機(jī)器配置已經(jīng)沒有什么提升空間的情況下,我在項(xiàng)目組內(nèi)部組織了一次整改活動(dòng),旨在降低編譯構(gòu)建時(shí)間


1。目標(biāo):將完全重新編譯時(shí)間從8分鐘降低到4分鐘以下
2。原則:通過和主程序的溝通,并參考了《C++ coding Standards》出了一下幾條整改原則:
?????首先是關(guān)于include的,因?yàn)榘^文件相當(dāng)于將代碼復(fù)制到本文件來編譯,而頭文件又經(jīng)常是用來被別人包含的,所以工程文件多了,每個(gè)文件都有include鏈(包含的文件又include了其他文件),該鏈條不會(huì)止步于你工程,而會(huì)延伸到你所有使用的第3方庫里面

?????A.能夠去掉的include就去掉。

?????B.能夠在cpp里面include的頭文件不要在頭文件里面include。
?????
說明:盡量去掉每個(gè)cpp會(huì)被串起來的頭文件膨脹的機(jī)會(huì)

?????C.能夠用前向聲明的就不要include,頭文件里面也是一樣
???? 說明:在頭文件里面用前向聲明然后保存指針或者引用,在具體實(shí)現(xiàn)的cpp里面再包含頭文件,雖然看起來和《C++ coding Standards》“Make header files self-sufficient”有些沖突(前兩天另外cppblog一位朋友講過http://www.shnenglu.com/flyingxu/archive/2006/06/23/8908.html)但是在一些核心的.h(被很多類include的)里面作改造工作,還是能夠收到很大的降低編譯時(shí)間效果,而付出的代價(jià)就是原來只需要包含該頭文件就可以編譯成功的cpp需要額外包含一些頭文件。

舉個(gè)例子: Foo類頭文件使用了前向申明保存了A類和B類的指針或者引用為成員變量,在Foo類的cpp里面才包含A和B的頭文件,而當(dāng)C類需要使用Foo類時(shí)候包含F(xiàn)oo類的頭文件,但是操作中又需要調(diào)用A的成員函數(shù),C不同時(shí)包含A的頭文件的花就會(huì)出現(xiàn)編譯失敗。

雖然表面上是讓代碼更加復(fù)雜了,但是除卻帶來降低編譯時(shí)間的好處之外,代碼也在強(qiáng)迫你進(jìn)行解耦合,如果說你cpp里面需要包含的頭文件越多,說明你這個(gè)類需要知道的對象就越多,你可以乘機(jī)檢查一下自己的代碼又沒有不必要的耦合,為什么這個(gè)cpp需要知道那么多的本來可能屬于別的類的細(xì)節(jié).....

??????D。把大多數(shù)模塊都要使用的庫文件或者穩(wěn)定類的頭文件include放到預(yù)編譯頭文件“stdafx.h”里面
??????
說明:由于預(yù)編譯頭文件里面include的內(nèi)容只會(huì)compile一次而被link多次,把一些常用類放到這里會(huì)降低很多編譯時(shí)間,但也不能亂來,要點(diǎn)在于 “大多數(shù)”和“穩(wěn)定”,如果一個(gè)頭文件經(jīng)常變化,他的一次小改動(dòng)都會(huì)引起整個(gè)工程rebuild,哪怕只是一個(gè)注釋,因?yàn)樗械腸pp文件都包含了stdafx.h而stdafx.h又包含了這個(gè)容易變動(dòng)的頭文件。
??????
??????E.使用Pimpl慣用法
??????說明:關(guān)于Pimpl大家可以查下資料,《C++ coding Standards》里面也有講解,基本上就是采用一個(gè)私有的前向申明的stuct指針把所有protect成員都封裝起來起來.基本上是一個(gè)最終極的解決方案,但是對我們現(xiàn)有架構(gòu)改造太大,不敢全面實(shí)行,我們只選擇了數(shù)個(gè)最有價(jià)值的類進(jìn)行了改造,打算以后在其他項(xiàng)目里面再全面應(yīng)用。

3。實(shí)施: 通過半個(gè)小時(shí)的溝通,讓項(xiàng)目組程序員了解原則,并采取結(jié)隊(duì)修改的方式來降低引入新bug的風(fēng)險(xiǎn),在以通過原有單元測試用例的條件下,進(jìn)行修改-測試-提交的迭代。???

4。結(jié)果:???編
譯時(shí)間降低到了6分鐘以內(nèi)。。。雖沒有達(dá)到預(yù)期,但也算有效果,沒有完全達(dá)標(biāo)的主要原因還是沒有完整的測試方案包括單元測試和驗(yàn)收測試,怕有些改動(dòng)過大影響系統(tǒng)健壯性,局部放棄了一些實(shí)施的原則。


把這個(gè)整改的工作寫出來,一方面作個(gè)記錄,另外一方面希望和大家討論,相互多多交流:)


ps:
希望有過類似工作的朋友加我的
MSN:itso2_at_msn.com
大家多多溝通
posted @ 2006-07-03 15:43 天爬者 閱讀(1390) | 評論 (4)編輯 收藏

2006年5月23日

公司有一個(gè)項(xiàng)目從vs2003移植到vs2005之后老是出現(xiàn)runtim erro
經(jīng)過排查最終定位在fstream 打開"含中文路徑"的文件時(shí)候會(huì)出現(xiàn)fail的情況
本來不相信vs2003過渡到2005會(huì)有這個(gè)問題,但是經(jīng)過試驗(yàn)確證實(shí)了該問題
我新建立一個(gè)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不需要作任何設(shè)置就可以就可以成功
但是vs2005下每次都會(huì)失敗在斷言處,查找了一些網(wǎng)上資料,例如
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=371229&SiteID=1
發(fā)現(xiàn)但凡是uinicode的路徑都是有該問題的.
解決方法有2個(gè)
1.第一個(gè)使用vs2005默認(rèn)的unicode set并在所有字符串外面面加上_T() 或者_(dá)TEXT宏,代價(jià)是原來所有不符合unicode規(guī)范的地方你都必須得改.
2.使用not set 或者"mutibyte set" 并在程序初始化的時(shí)候調(diào)用setlocale()如下

BOOL?CtestiostreamApp::InitInstance()
{
?????setlocale(LC_ALL,
"Chinese-simplified");
????CWinApp::InitInstance();
????std::ifstream?iput;
????iput.open(
"F:\\中文.txt");
????ASSERT(
!iput.fail());
????
return?FALSE;
}
就可以解決該問題

上述引用的ms論壇連接基本講清楚了該問題,但是由于我前幾日搜索中文相關(guān)信息時(shí)候,實(shí)在未發(fā)現(xiàn)有用之內(nèi)容,故記錄下來,希望有相同問題又不思其解的朋友可以少花點(diǎn)時(shí)間.
posted @ 2006-05-23 08:49 天爬者 閱讀(3978) | 評論 (3)編輯 收藏

2006年5月18日

最近研究自動(dòng)化構(gòu)建系統(tǒng)(持續(xù)集成),最終發(fā)現(xiàn)finalbuilder十分之好用

根據(jù)網(wǎng)上

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

這篇文章,初步作了一個(gè) 由subversion 的post-commit 觸發(fā)的自動(dòng)更新所有相關(guān)代碼編譯,并把編譯結(jié)果以及信息發(fā)送給相關(guān)人員的郵件的finalbuilder工程,目的是期望所有程序員能夠養(yǎng)成一種提交可編譯代碼的習(xí)慣,

其中需要用到一種叫做 subversion info 的action 類型, 其原理大概是調(diào)用 subversion/bin 里面的 svn.exe 加上參數(shù) info 然后從標(biāo)準(zhǔn)輸出中匹配相關(guān)信息取得特定數(shù)據(jù)放到 指定的變量中,但是其action始終不能執(zhí)行成功,更別提保存我需要的變量了.

經(jīng)過一系列試驗(yàn),估計(jì)是由于svn在中文操作系統(tǒng)上返回的是類似下面的中文信息

C:\Program Files\Subversion\bin>svn info D:\LocalSvnForDailyBuild\dest
路徑:D:\LocalSvnForDailyBuild\dest
地址(URL):http://192.168.1.100:3115/dest
Repository Root: http://192.168.1.100:3115/dest
檔案庫 UUID:47b214da-b8ec-df4b-aac3-16e2c895fbbd
修訂版:666
節(jié)點(diǎn)種類:目錄
調(diào)度:正常
最后修改的作者:medicer
最后修改的修訂版:666
最后修改的時(shí)間: 2006-05-18 11:58:03 +0800 (星期四, 18 五月 2006)
屬性最后更新: 2006-05-15 10:41:52 +0800 (星期一, 15 五月 2006)

而finalbuilder期望的估計(jì)是英文的輸出,所以匹配不了導(dǎo)致失敗

經(jīng)過幾番試驗(yàn)

最后把subversion 目錄 C:\Program Files\Subversion\share\locale\zh_CN\LC_MESSAGES\subversion.mo 文字信息文件刪除掉后,svn返回都使用了默認(rèn)的英文,而finalbuilder也終于運(yùn)行成功, 最后一次提交者提交時(shí)間都能夠正常取到!

沒有什么技術(shù)含量,只是在這里記錄下來,希望遇到相同問題的朋友可以搜索得到,不用再折騰?

posted @ 2006-05-18 14:29 天爬者 閱讀(1845) | 評論 (2)編輯 收藏
僅列出標(biāo)題  
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲香蕉伊综合在人在线视看| 亚洲国产一区二区三区青草影视| 在线视频一区二区| 日韩午夜电影| 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美日本在线| 性欧美办公室18xxxxhd| 欧美 日韩 国产精品免费观看| 亚洲一区激情| 国产亚洲成av人片在线观看桃| 欧美一区二区视频在线| 欧美一区二区三区免费观看视频| 国产视频在线观看一区二区三区| 欧美在线|欧美| 久久久91精品| 一个色综合av| 亚洲欧美综合v| 亚洲国产天堂久久国产91| 亚洲欧洲精品一区二区| 国产精品福利在线观看| 欧美在线国产| 免费观看成人| 欧美一级欧美一级在线播放| 久久久免费精品| 亚洲特级片在线| 久久精品国产清自在天天线| 一区二区激情小说| 久久久国产视频91| 亚洲午夜在线观看| 久久亚洲一区| 欧美中在线观看| 欧美精品免费在线观看| 久久精品国产成人| 欧美日韩一区二区三区在线 | 亚洲精品视频在线播放| 宅男精品视频| 亚洲精品视频二区| 久久久99免费视频| 欧美一二三区精品| 欧美人成在线视频| 裸体一区二区| 国产一区二区精品在线观看| 日韩一级在线| 亚洲卡通欧美制服中文| 久久久久久香蕉网| 久久久久女教师免费一区| 国产精品分类| 日韩午夜一区| 一本综合精品| 蜜桃伊人久久| 欧美va亚洲va日韩∨a综合色| 国产欧美日韩麻豆91| 一个色综合av| 这里只有精品视频| 欧美日韩激情小视频| 欧美国产精品专区| 在线观看一区视频| 久久裸体视频| 久久综合图片| 亚洲风情亚aⅴ在线发布| 久久精品国产亚洲一区二区| 欧美在线高清视频| 国产伦精品一区二区三区高清版| av成人激情| 亚洲自拍偷拍色片视频| 欧美三级不卡| 夜夜精品视频一区二区| 欧美777四色影视在线| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲欧洲一区二区在线播放| 亚洲国产精品日韩| 欧美电影免费观看| 亚洲精品一级| 亚洲一区二区伦理| 国产精品一区二区三区四区五区| 亚洲一区在线播放| 久久久久久久久久久久久久一区| 国产在线高清精品| 久久色在线播放| 亚洲人成啪啪网站| 亚洲自拍电影| 黄色欧美成人| 欧美jizz19hd性欧美| 日韩午夜免费| 久久gogo国模啪啪人体图| 伊人成人网在线看| 欧美日韩国产一区二区三区地区| 亚洲最新在线视频| 久久激情视频免费观看| 亚洲国产日韩美| 国产精品扒开腿爽爽爽视频| 久久av资源网| 亚洲免费高清| 另类专区欧美制服同性| 99re66热这里只有精品4| 国产精品久久久久久超碰| 欧美在线观看视频一区二区三区| 欧美aⅴ99久久黑人专区| 在线视频日韩精品| 国语精品中文字幕| 欧美视频导航| 麻豆精品在线视频| 亚洲一区三区视频在线观看| 你懂的视频一区二区| 亚洲一卡久久| 亚洲国产日韩欧美在线99| 欧美性理论片在线观看片免费| 欧美在线视频一区二区| 日韩午夜免费| 亚洲高清免费在线| 久久久久久久综合色一本| 亚洲精品一区二区三区在线观看| 国产精品视频| 欧美区日韩区| 久久亚洲精品网站| 欧美一区91| 亚洲午夜视频| 亚洲日本中文字幕| 欧美r片在线| 欧美在线影院在线视频| 一区二区三区高清不卡| 亚洲人成网站精品片在线观看| 国产欧美 在线欧美| 欧美日韩免费在线| 欧美~级网站不卡| 久久婷婷久久一区二区三区| 亚洲与欧洲av电影| 日韩亚洲欧美一区| 亚洲精品国产欧美| 欧美成人免费全部| 鲁大师成人一区二区三区| 午夜亚洲一区| 亚洲自拍16p| 亚洲欧美日韩国产综合在线| 夜夜精品视频| 一本一本久久a久久精品综合妖精| 亚洲黄色成人久久久| 久久福利视频导航| 亚洲视频1区2区| 亚洲韩日在线| 亚洲国产一区二区三区高清| 亚洲大胆美女视频| 亚洲国产欧洲综合997久久| 极品少妇一区二区三区| 国精品一区二区三区| 国产亚洲va综合人人澡精品| 国产亚洲成av人在线观看导航| 国产欧美日韩精品一区| 国产精品主播| 一区二区亚洲精品| 一色屋精品视频在线看| 在线观看成人av| 亚洲电影在线观看| 日韩网站在线| 亚洲影院色无极综合| 性欧美精品高清| 欧美一区国产二区| 久久综合九色欧美综合狠狠| 免费成人小视频| 91久久久亚洲精品| 一本色道久久88精品综合| 亚洲一本视频| 欧美在线看片| 欧美激情第一页xxx| 欧美日韩一二区| 国内精品久久久久国产盗摄免费观看完整版 | 羞羞色国产精品| 久久九九免费| 欧美日韩国产一区二区三区| 国产精品一区免费在线观看| 在线观看91精品国产麻豆| 日韩一区二区免费看| 午夜欧美视频| 欧美黄色一区二区| 亚洲视频在线观看三级| 久久高清国产| 欧美日韩一区在线视频| 国产一区二区三区丝袜| 亚洲毛片在线观看| 久久精品国产精品| 亚洲精品影院在线观看| 欧美一区二区三区精品| 欧美日韩亚洲一区三区 | 欧美日韩国产影片| 国内精品伊人久久久久av一坑| 亚洲精品日产精品乱码不卡| 欧美一区二区三区的| 亚洲欧洲综合另类在线| 欧美一区免费视频| 国产精品久久久久久户外露出 | 亚洲精品少妇网址| 久久久久久午夜| 亚洲一级二级| 欧美国产成人精品| 狠狠色噜噜狠狠狠狠色吗综合| 夜夜爽av福利精品导航 | 欧美gay视频| 性欧美暴力猛交69hd| 欧美日韩中文字幕精品| 亚洲国产精品免费|