2014-09-23 10 views
1

我在XCode調試面板中顯示的已用內存量和儀器中的相同信息之間存在巨大差異。 當儀器僅顯示42MB時,XCode顯示400 MB分配的內存。我肯定接近400比42,因爲我已經加載了多個32MB紋理...(這次,42不是答案,順便說一句)XCode儀器6(目前爲止)沒有反映正確的內存量

XCode 6.0.1,iPad 3,iPhone 5S,iOS 7.1 .2在兩者上,在真實設備上進行性能分析,但在模擬器上做同樣的事情沒有問題。

不是跟蹤內存消耗的理想情況。

出了什麼問題?我錯過了什麼?我過濾「所有分配」和「所有堆和匿名」。 有什麼想法? THX

回答

1

撥款儀器不記錄OpenGL ES的紋理內存分配。如果您的應用程序正在分配多個32 MB紋理,這就可以解釋爲什麼Xcode報告的內存使用量爲400 MB,並且分配工具報告爲42 MB。

使用OpenGL ES分析模板查看紋理內存分配。使用Allocations工具查看應用程序內存分配的其餘部分。

+0

有趣並且有點令人驚訝,因爲樂器目前不適合模擬器。我做了一個嘗試,但無法找到這些分配在OpenGL ES Instruments模塊中的跟蹤位置。我需要的是跟蹤和回溯alloc調用,就像完成所有其他mems的alloc(通過Allocations模塊)。任何線索? – 2014-09-23 19:45:29

+0

我不認爲你可以跟蹤OpenGL ES儀器的分配。這些工具跟蹤OpenGL ES調用。 OpenGL ES分析儀可讓您繪製上傳的紋理字節。 GPU驅動程序工具有幾個與紋理相關的統計信息供您繪製。 – 2014-09-23 20:21:36

0
+0

活動監視器無法追蹤*我的記憶在哪裏。正如我所說的,我相信XCode調試面板告訴了什麼,但是Instruments有更深入地挖掘malloc()的細節,目前它不顯示我的應用的真實狀態,只是分配的一小部分。 – 2014-09-23 18:24:24