Сериализация XML является медленной

Да. На UIButton есть метод -setTitle:forState:, использующий это.

6
задан casperOne 11 June 2011 в 20:53
поделиться

2 ответа

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

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

6
ответ дан 8 December 2019 в 17:26
поделиться

Xml-сериализация не использует атрибут Serializable. Сериализатор xml фактически генерирует сборку, которая отображает xml на объект, но не использует отражение. Это одна из причин, по которой сериализация Xml работает только с общедоступными

. Вы можете попробовать измерить с помощью DataContractSerializer , который является частью WCF. Было бы интересно увидеть разницу.

Я никогда не сталкивался с ограничениями производительности лично, но у меня также нет больших объектов, таких как ваше описание.

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

1) Кэшировать созданный вами экземпляр сериализатора. Я считаю, что это потокобезопасно, но вы захотите дважды проверить MSDN.
2) Используйте другой конструктор для создания XmlSerializer.

6
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: