2010-05-26 53 views
1

想要探索我們產品的一些內存管理器 - 升壓,loki中的小對象分配器和我們公司內部可用的一個內存管理器。探索內存管理器

在爲我們的產品選擇一款產品之前,我們希望探索小型原型應用的所有選項,這些應用在功能方面不需要與我們的應用類似。我的目標是分析性能和峯值虛擬機的相同數量的分配和取消分配各種大小的對象 - 連續和不連續。它應該用於std容器或boost庫。

任何想法如何去這樣的原型應用?我們的應用程序不是MT - 但我們將來會有計劃。任何建議將是一個很大的幫助。像對待真正的應用程序那樣在對象分配方面具有所謂的隨機性會很好。另外,建議在公共領域提供一些其他的內存管理器會有很大的幫助。我們主要是在Linux 32b和64b上。

回答

0

我們在2小時內添加了一個基於boost的小對象分配器。只要你能夠訪問你自己的malloc /新東西,就可以很容易地實現它。然後你可以衡量你自己的項目。

失敗之處,請分析您的應用程序內存使用情況的足跡 - 比方說打印出/將所有內存分配記錄到文件中幾分鐘或一個大小,然後記錄該日誌並創建一個新的應用程序,只是執行這些分配並釋放(有和沒有小對象分配器) - 並且可能會計算素數或分配之間的某些內容來模擬緩存未命中。

1

這是一個奇怪的問題。如果你試圖解決一個內置在CRT中的問題,你應該只考慮一個自定義的內存分配器。哪個應該提供立即的方法來測試這個備用分配器:看看它是否能解決這個問題。

如果你只是這樣做,因爲它「聽起來像個好主意」,那麼不要。事實並非如此。 CRT內置的一個已經大大優化了。