2010-06-19 60 views
2

如何跟蹤Android中OpenGL紋理使用的內存? 我知道紋理內存在視頻RAM上,但是它們是否與RAM交換?如果我調用glGenTextures並且不調用glDeleteTextures,它會如何影響我當前進程的內存使用情況?Android中的軌跡opengl紋理內存

回答

1

這可能取決於設備。但在OpenGL的一些實現中,當VRAM用完時,如果有空間的話,它會嘗試將一些較舊的紋理轉移到系統內存上。如果沒有空間,它將被釋放。但是,OpenGL內存將永遠不會進入應用程序內存,因爲設備上一次只有一個OpenGL上下文。這意味着它由系統處理,而不是你的應用程序問題。

換句話說,通過純粹的OpenGL,你不能說出你已經使用了多少內存。但是,您可以使用您上傳到VRAM的每個紋理(因爲您擁有上傳的字節)來跟蹤此自己。

至於不調用glDeleteTextures,如果你不使用那麼多的內存,你並不需要。它不會使用更多的電池或CPU或GPU電源,VRAM的位僅僅設置爲1而不是0.如果其他應用程序在應用程序暫停或死亡後需要該內存,它們將自動刪除您的紋理並覆蓋它們與他們的。

+0

我對桌面設備有類似的理解 - 但與Android的東西似乎不同。我正在使用名爲procrank的Android特定工具來跟蹤我的進程內存,該工具統計進程獨有的頁數(USS),如果我不調用glDeleteTextures - 我的USS增加。 – bgm 2010-06-21 11:05:56