我在Visual Studio 2010的64位Windows 7上使用32位GLUT。該項目只包含我的C++實現和頭文件。沒有Win32特定的代碼。爲什麼_mainCRTStartup在調試時如此緩慢,但快速關閉調試?
我做了很多像素繪製操作。它是發佈配置的即時版本,但調試配置非常慢(至少需要5秒)。我注意到當我吸引更多時,它會減慢速度。所以我想,簡介它。
Visual C++分析器說100%的時間花費在_mainCRTStartup
之間(我猜這是四捨五入的)。我知道這是C運行時間,但是什麼導致它在調試配置中運行得如此緩慢?在調試和發佈配置中,等效的C代碼同樣是瞬時的。 C++中有什麼特別的東西讓_mainCRTStartup
花費更長的時間?
編輯:顯然我忽略了一件事:在_mainCRTStartup框架下,有一個對Unknown frame(s)
的引用。我認爲這是main()
及其子女的功能。我無法實際分析我編寫的函數,無論是在調試還是發佈中。我在哪裏追求?
'_mainCRTStartup'調用'main' - 我猜測100%是main()從開始到結束這顯然是您的整個運行時間;-) – Cameron 2011-03-24 22:37:02
有趣。感謝那個珍聞。說得通。 但沒有解釋5秒的滯後。 ( – johansson 2011-03-24 22:38:26
)如果你想知道需要花費多少時間(儘管關心調試的性能有點無用),你需要減少粗略的時間。說100%的時間是由啓動代碼(調用' main()')是微不足道的,沒有信息。 – GManNickG 2011-03-24 22:42:15