我們正在將項目從Visual Studio 6(我知道)遷移到Visual Studio 2010.我們遇到了很多問題,因爲Visual Studio爲我們做了轉換自動,所以我們不得不手動。在Visual Studio 2010下與Visual Studio 6.0相比,原生C++ .dll速度更慢6
這裏有兩個命令行選項:
2006
/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HCR_DLL_EXPORTS" /Fp"Release/hcr_dll.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
2010
/Zi /nologo /W4 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "HCR_DLL_EXPORTS" /D "_WINDLL" /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"Release\hcr_dll.pch" /Fa"Release\" /Fo"Release\" /Fd"Release\vc100.pdb" /Gd /wd"4996" /analyze- /errorReport:queue
我在選項中拍得上都this page。看來2010版本的編譯選項啓用了異常,而VC6版本不支持?也許這是原因?我們現在開始運行一些基準測試,但有很多組合需要嘗試,而且我們對這方面的經驗並不是很豐富,所以如果你能夠立即查看並理解原因,我會在天堂爲你買一杯啤酒。
編輯:我明白爲什麼有些人可能不喜歡這個問題。我們正在嘗試找出問題並提出一個具體的測試來展示其差異。這是一個巨大的遺留的.dll,所以我希望這可能是一個明顯的問題,通過查看編譯選項,有經驗的人會注意到。如果不是,我們將繼續努力解決問題。謝謝。
編輯2:我對這個問題的性質表示歉意,並同意它應該被關閉。我們嘲笑編譯選項,並提出了與VC6相比,我們的程序實際上加快了20%左右。我知道我應該公佈特定的代碼來證明這個基準,但是我們正處於緊縮狀態,所以我們只是要使用它而不是現在就看它。我希望有一段時間能夠回到這個問題上,但考慮到我們的時間表,我可能無法做到。對於任何有興趣的人,這些是我們現在使用的選項。
/Z7 /nologo /W4 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "HCR_DLL_EXPORTS" /D "_WINDLL" /Gm- /MD /GS- /fp:precise /Zc:wchar_t /Zc:forScope /Fp"Release\hcr_dll.pch" /Fa"Release\" /Fo"Release\" /Fd"Release\vc100.pdb" /Gd /wd"4996" /analyze- /errorReport:queue
這可能實際上並不會幫助任何人B/C,他們不知道什麼我們的計劃是做的想法,但我想我會仍然張貼。對不起,如果我已經讓任何人浪費了大量的時間。
「慢」 是真的不夠說明去。 – tenfour
向我們展示您在VS10中分析和演示的特定代碼塊比在VS6中慢。 –
1998年(VS6)和2009年(VS2010)之間有很長的一段時間......當一切仍然有效時,它的速度會有所改變,這更令人驚訝。 – PlasmaHH