由于這些原因,我們催促 C 和 C++ 程序員為解決內存問題先了解一下自己的源。在這完成之后,才去考慮庫。
使用幾個庫能夠編寫常規的 C 或 C++ 代碼,并保證改進內存管理。Jonathan Bartlett 在 developerWorks 的 2004 評論專欄中介紹了主要的候選項,可以在下面的參考資料部分獲得。庫可以解決多種不同的內存問題,以致于直接對它們進行比較是非常困難的;這方面的常見主題包括垃圾收集、智能指針 和 智能容器。大體上說,庫可以自動進行較多的內存管理,這樣程序員可以犯更少的錯誤。
我對內存庫有各種感受。他們在努力工作,但我看到他們在項目中獲得的成功比預期要小,尤其在 C 方面。我尚未對這些令人失望的結果進行仔細分析。例如,業績應該與相應的手動 內存管理一樣好,但是這是一個灰色區域——尤其在垃圾收集庫處理速度緩慢的情況下。通過這方面的實踐得出的最明確的結論是,與 C 關注的代碼組相比,C++ 似乎可以較好地接受智能指針。
內存工具
開發真正基于 C 的應用程序的開發團隊需要運行時內存工具作為其開發策略的一部分。已介紹的技術很有價值,而且不可或缺。在您親自嘗試使用內存工具之前,其質量和功能您可能還不了解。
本文主要討論了基于軟件的內存工具。還有硬件內存調試器;在非常特殊的情況下(主要是在使用不支持其他工具的專用主機時)才考慮它們。
市場上的軟件內存工具包括專有工具(如 IBM Rational® Purify 和 Electric Fence)和其他開放源代碼工具。其中有許多可以很好地與 AIX 和其他操作系統一起使用。
所有內存工具的功能基本相同:構建可執行文件的特定版本(很像在編譯時通過使用 -g 標記生成的調試版本)、練習相關應用程序和研究由工具自動生成的報告。請考慮如清單 8 所示的程序。
文章來源于領測軟件測試網 http://www.kjueaiud.com/