2011-03-25 58 views
1

在我的項目文件上花費了一個星期的時間使用FastMM後,我現在完全通過了我的程序,並且據我所知除去FastMM497引發的所有錯誤信息。現在,我想從我的程序中移除FastMM並在沒有它的情況下運行。 我可以這樣做嗎?如果我刪除它並運行我的程序,我的程序是否會開始泄漏內存?據我所知,我已經刪除並將我的項目選項設置改回原來的樣子。如何從我的項目文件中刪除FastMM497?

但是,我確實注意到當我運行可執行文件時,我的程序更大。最初,我的程序啓動時大約在5,000KB到6,000KB之間。在完成FastMM後,現在在任務管理器中大約有21,000KB。我正確看着這個嗎?

我可以在我的程序中保留FastMM497並將它部署到我的用戶嗎?

回答

7

嗯,我想你應該離開FastMM的完整版本,因爲大概你會繼續開發你的程序,你可能會無意中引入更多的內存泄漏。讓FastMM告訴你這些幫助。

但是,你不想做的是向用戶發佈使用FastMM調試選項的版本。這會慢得多,會消耗更多的內存,並且還會報告您大概不希望用戶看到的診斷信息。

通常情況下會有兩種構建配置DEBUG和RELEASE。當你建立DEBUG時,你有所有的診斷選項。當您構建RELEASE時,您可以將其全部切換。通常通過條件定義FastMM包含文件FastMMOptions.inc中的哪些控制設置來配置它。

我配置它的方式是DEBUG配置定義了一個名爲UseDebugFastMM的條件,而RELEASE配置沒有。然後在FastMMOptions.inc中,我通過啓用所有調試功能(如果已定義)來響應該條件。

說了這麼多,我實際發佈給我的客戶端根本不使用FastMM,因爲我發現它在線程爭用情況下表現不好。相反,我使用的是一個自定義內存管理器,只需要將malloc()委託給msvcrt.dll即可發現它的性能更好。但是它都是用條件控制的,而且很值得讓項目配置好,這樣你就可以輕鬆地進行實驗了,如果你需要的話。

+0

打我幾秒鐘。 :) +1 – 2011-03-25 20:18:15

+0

我明白了。謝謝... – ThN 2011-03-25 21:03:57