使用Visual Studio項目轉(zhuǎn)換功能需謹慎
今年二月,現(xiàn)在的這個項目進入到開發(fā)階段,在前一個版本的基礎上進行增量開發(fā),是Windows下基于MFC開發(fā)的應用程序。
前一個版本使用VS2003開發(fā),現(xiàn)在已經(jīng)不能滿足我們的需求,我們決定在新版本中升級到VS2008。
使我們升級的原因主要有這些:
VS2003在調(diào)試時不支持直接查看STL各種數(shù)據(jù)容器中的元素(其實通過指針可以查看某個元素的值,但不能一次查看所有元素); 不支持并行構(gòu)建,二十多萬行代碼,構(gòu)建一次需要近半個小時;
需要支持Vista/Win7操作系統(tǒng),VS2003沒有對UAC的支持,且不能直接增加manifest文件;
VS2008相對于VS2003其他的一些優(yōu)化
升級的過程主要由VS2008的轉(zhuǎn)換向?qū)瓿伞0粗崾镜牟僮饕徊讲较聛恚湍艿玫睫D(zhuǎn)換后的解決方案和工程文件。打開新的sln后構(gòu)建,把有問題的地方改掉,將老的lib及dll文件也使用VS2008重新編譯,構(gòu)建出來的軟件可以正常運行,看上去一切正常。
但是過了一段時間,測試人員發(fā)現(xiàn)Release版本的整體性能有大幅下降,幾乎是原來的二分之一到三分之二。由于我們的產(chǎn)品的定位是海量數(shù)據(jù)分析,所以性能至關(guān)重要。我和另外一名開發(fā)人員一起來分析這個問題的原因,所有工程屬性都是正確的,也查看了svn的提交記錄,似乎一切都沒有問題。后來,我們發(fā)現(xiàn),當前工程的編譯器選項中對于是否優(yōu)化設置的是"***化速度/O2",但是改成"全局優(yōu)化/Og"后性能反而有所提升。再查看原先的vcproj文件,發(fā)現(xiàn)雖然設置的是"***化速度/O2",但是在編譯器的命令行中卻沒有"/O2"的選項。將編譯器優(yōu)化選項改為其他再改回"***化速度/O2",可以看到編譯器命令行中增加了"/O2"選項。重新構(gòu)建,性能恢復正常。
問題產(chǎn)生的原因,猜測應該是 VS2008轉(zhuǎn)換VS2003的工程文件后丟失了優(yōu)化選項,但是在工程屬性頁中錯誤的顯示默認選項"***化速度/O2"。
所以,VS提供的項目轉(zhuǎn)換功能是不可靠的,建議將轉(zhuǎn)換后的工程文件完整仔細的檢查一遍。或者干脆不轉(zhuǎn)換,重新建立一套工程文件,把原先的代碼添加進來,重新設置所有工程的屬性。這樣效率比較低,但是最保險。
原文標題:慎用Visual Studio對項目的轉(zhuǎn)換功能
鏈接:http://www.cnblogs.com/Chase/archive/2010/07/03/1770416.html
【編輯推薦】
- WEB性能測試:你應該帶上Visual Studio 2010
- Visual Studio 2010中手動添加圖片文件
- 使用Visual Studio 2010統(tǒng)一管理數(shù)據(jù)庫對象
- Visual Studio 2010 TFS探索之旅
- Visual Studio 2010更改顏色背景的方法