Как вы уже видели, получить точные числа для использования памяти текстур GL довольно сложно.Это усложняется еще и тем, что CoreAnimation также будет использовать память GL Texture без «консультации» с вами, в том числе с процессами, отличными от ваших.
На практике я предлагаю вам использовать инструмент VM Tracker в инструментах для наблюдения за изменениямина страницах VM ваш процесс отображается под тегом IOKit.Это немного грубо, но это лучший подход, который я нашел.По моему опыту, этот процесс в значительной степени угадать и проверить.
Вы специально спросили, как определить количество бесплатной видеопамяти, но даже если вы сможете получить эту информацию, она вряд ли окажется полезной.Даже если ваше приложение полностью OpenGL и не использует слои UIViews или CoreAnimation, другие процессы, наиболее важные из них более привилегированные, чем у вас, могут потреблять эту память в любое время, явным или неявным образом через CoreAnimation.Также, вероятно, можно с уверенностью предположить, что если ваше приложение предотвращает получение этими более привилегированными приложениями нужной им памяти текстур, ваш процесс будет убит.
Иными словами, даже если вы могли бы определить мгновенное состояние GLпамяти текстур, вы, вероятно, не могли рассчитывать на то, что будете единственным потребителем этого ресурса, поэтому он довольно бесполезен.
В конце концов, вы должны потратить свои усилия на разработку своего приложения, чтобы стать хорошим гражданином вусловия памяти GL и управлять (читай: минимизировать) собственным потреблением памяти текстур.Устройства iOS - это не игровые приставки старой школы - вы не единственные работающие устройства, поэтому вам нужно быть внимательным и терпимым к этому факту, чтобы ваше приложение не было одним из тех, где каждый должен каждые несколько минут перезагружать свой телефон.Для того, чтобы использовать его.