Плохо ли использование Serializable в Android?

Я читал много постов и статей, восхваляющих скорость Parcelable по сравнению с Serializable. Некоторое время я использовал оба для передачи данных между Деятельностями через Intents, и еще не заметил какой-либо разницы в скорости при переключении между ними. Типичный объем данных, которые мне нужно передать, составляет от 5 до 15 вложенных объектов с 2-5 полями в каждом.

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

Должен ли я использовать Parcelable или нет причин использовать его поверх Serializable для таких небольших объемов данных? Или есть еще одна причина, по которой я не должен использовать Serializable?

53
задан Alpha Hydrae 31 August 2010 в 07:01
поделиться

1 ответ

Для использования в памяти Parcelable намного лучше, чем Serializable. Я настоятельно рекомендую не использовать Serializable.

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

Кроме того, одна из проблем производительности с Serializable заключается в том, что он заканчивает прокрутку множества временных объектов, вызывая большую активность GC в вашем приложении. Это довольно отвратительно. :}

66
ответ дан 7 November 2019 в 08:26
поделиться
Другие вопросы по тегам:

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