Кто-нибудь еще испытывал медленную десериализацию в MonoTouch при использовании класса .NET XmlSerializer? - PullRequest
2 голосов
/ 25 марта 2011

У меня есть приложение MonoTouch для iOS, в котором я десериализирую большой список людей из веб-службы. XML довольно прост: корневой узел - это список людей, каждый человек имеет только 5 свойств. Список довольно большой ... около 1000 человек.

Когда я запускаю десериализацию в симуляторе iPhone, операция занимает около одной секунды. Когда я запускаю его на своем iPhone 3GS, операция занимает около 13 секунд. Конечно, на симе работает код x86, а в приложении - код ARM. Плюс доступная мощность в телефоне меньше, чем в симе. Но будет ли это действительно так много различий ???

Кто-нибудь еще испытывал медленную сериализацию .NET с MonoTouch? Кто-нибудь знает причину? Если так, нашли ли вы какой-нибудь способ с этим справиться? Возможно, многопоточность или другая библиотека сериализации?

1 Ответ

6 голосов
/ 25 марта 2011

Да, это может занять много времени. На симуляторе мы можем создавать Jit-код и создавать специализированные десериализаторы. На устройстве должно быть интерпретировано все дерево десериализации. Попробуйте использовать двоичную сериализацию, это должно быть лучше, но лучше всего было бы переместить вашу объектную модель в sqlite.

...