2010-08-18 67 views
1

Turns out它是完全有效的用於C++編譯器與完全相同的編譯器/環境/不管設置重新編譯該相同節目時發出不同的機器代碼。這意味着編譯器優化器可以根據各種因素(包括的可用內存量)決定優化的「深度」。Visual C++優化器對可用內存量是否敏感?

沒有人有VISUAL C++是否不取決於可用的內存量執行不同的優化任何證據嗎?

+0

的可能重複的[是一個C++編譯器允許發射不同的機器代碼編譯同一程序?](http://stackoverflow.com/questions/3053904/is-ac-compiler-allowed-to-emit-different-機器代碼編譯最同程序控制) – 2010-08-18 11:48:31

+1

@Hans帕桑特:其實沒有 - 這一次我問它是否知道,VC++或不執行根據可用內存的不同深度的優化。 – sharptooth 2010-08-18 12:31:56

回答

1

如果你問「確實MSVC發出不同的輸出,當我和1GB內存的機器上運行編譯器本身與一個4GB的內存?」答案是理論上可能,但根據我們的經驗沒有。我們對我們應用中的小代碼生成細節非常敏感,所以我們測試了MSVC在從1Gb WinXP機器到8Gb Win7機器的各種不同配置下的行爲。就我們所知,MSVC根據需要分配儘可能多的內存,如果耗盡,就會崩潰。

+0

當然,我正在問第二件事。第一個在遠離開發者的某臺機器上使用的商業軟件沒有任何意義。 – sharptooth 2010-08-18 10:30:20

+0

對不起,我想我太習慣於在SO上看到比較奇怪的問題。我已經刪除了我的答案的不相關部分。 – Crashworks 2010-08-18 10:37:00

相關問題