2016-09-25 54 views
0

我找到了answer for desktops,但我找不到任何Android/iOS(假設我可以使用OpenGL ES 3.0)。所以這是移動設備的相同問題:是否有可能以編程方式獲取由我的應用程序使用的OpenGL總字節數?如何獲取移動設備中OpenGL使用的內存總量?

注:我是與非通用解決方案確定(據我所知通用解決方案不存在),但一些流行的設備工作至少(的iOS/Snapdragon的/ ..)

+0

你想知道OpenGL使用的gpu內存?爲什麼你需要知道這個? – Sung

+0

@SungWoo我正在Xamarin&OpenTK編寫一個跨平臺的移動遊戲引擎,如果有一個可以顯示諸如繪圖調用次數,內存和GPU使用情況等幫助快速識別泄漏的調試小部件將是很好的。 – sydd

回答

3

不,它不是可以通過任何標準的API。

大多數圖形驅動程序都會將任何圖形內存記錄到進程中,因此您始終可以使用「top」命令行實用程序來獲取總進程內存。它無法隔離圖形內存,但它應該讓你知道你的過程總共使用了多少。這就是說,你可能有一個相當不錯的想法,你使用GLES API上傳/分配存儲的數據量,這可能是對總內存空氣估計的一個好手指。大部分大容量存儲與應用程序資產相關。

+0

>你總是可以使用「頂級」命令行工具獲取全部進程內存 - 而不是在Android或iOS上(問題的關鍵)AFAIK。移動設備上的非標準API有可能嗎?我在評論中看到的桌面鏈接也是關於擴展。 – sydd

+0

安裝busybox或類似的Android的東西,它會正常工作; Linux內核信息始終從procfs中導出。我認爲唯一的限制是如果你想運行命令行busybox,你需要植入設備;不知道是否可以在APK中打包,但它應該是... – solidpixel

+0

我正在編寫一個圖形引擎,要求用戶根目錄有點太多:/ – sydd