Получение данных из XML-документа на мобильных устройствах довольно регулярно, это нормально для производительности? - PullRequest
0 голосов
/ 01 мая 2011

Игра, над которой я работаю, содержит несколько файлов XML, которые она использует для управления спрайтовой анимацией. В настоящее время, когда я создаю экземпляр спрайта, я загружаю его в XDocument один раз и сохраняю в кеше, чтобы, если мне нужно,загрузить его снова, я могу просто взять то, что уже есть в памяти.

Я делаю это очень часто в игре, так как создаю анимированные спрайты и тому подобное, просматривая его определения примерно так:

var definitions = doc.Document.Descendants(name);
foreach (var animationDefinition in definitions)

Так что мой вопрос, это приемлемо на мобильном телефоне? Скажем, iPhone 3GS / iPhone 4 / Windows Phone 7 / Android? Я использую MonoTouch в ANdroid и iPhone, в то время как у WP7 есть собственный .Net.

Я спрашиваю, потому что в настоящее время я не загружаю столько анимационных спрайтов, но, поскольку я делаю все больше и больше, я волнуюсь, что это ухудшит производительность. Я полагаю, что было бы лучше изменить мои дизайнерские идеи сейчас, чем ждать, чтобы пострадать впозже.

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Ну, по сути, вы пытаетесь спросить, сколько «слишком много». Я бы посоветовал найти «практический» предел с точки зрения производительности, вам просто нужно рекурсивно увеличить количество спрайтов и заметить, когда приложение замедляется. Сохраняйте коэффициент безопасности, скажем, от 1,5 до 3. И вы знаете. Опять же, вам нужно подумать, сколько спрайтов у вас всего для начала. Если все может быть сохранено в памяти, соблюдайте все другие спецификации, тогда сделайте это. Клиент не будет возражать против более продолжительного времени загрузки игр, если оно будет гладким внутри. Остальное просто протестируй.

1 голос
/ 01 мая 2011

Я бы просто проверил, что быстрее (прочитав его снова и снова с помощью SAXParser или сохранив его в памяти с помощью DOM).

Может быть, имеет смысл сохранить прочитанные данные из вашего XML-файла в нечто вроде массива / вектора / класса, чтобы вам не приходилось анализировать XML-файл снова и снова.

...