2016-07-08 2 views
1

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

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

Итак, мой вопрос: государство-реестр сохраняет наши бизнес-данные, и на мобильном устройстве потребуется больше памяти, например, компонента ListView. как я могу решить эту проблему, если я хочу уменьшить использование памяти?

+2

Это еще не проблема, а мнимая. Воображаемые проблемы решаются воображением - просто задерживайте дыхание и представляйте, что оно разрешено. – zerkms

+0

, если какая-либо информация вообще не используется, зачем хранить ее в своем состоянии? – xiaofan2406

+1

@zerkms Это не «воображаемая» проблема, она гипотетическая. Согласны ли вы с тем, что гипотетические проблемы ценно обсуждаются перед конкретными проблемами, поэтому вы можете определить, действительна ли общая идея подхода, прежде чем предпринимать усилия по реализации? Я согласен, хотя вопрос можно сформулировать лучше. :) –

ответ

6

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

Это просто общая хабар и игнорирует такие вещи, как сжатие, дублирование данных, разница между хранением что-то в AsyncStorage против просто находиться в памяти и т.д.

Это уже было сказано, если вам нужно какое-то проверьте, будет ли проблема с памятью/хранилищем, возьмите репрезентативный фрагмент данных записи, обслуживаемых вашим API, сериализуйте его как строку JSON и определите, насколько он большой.

Например, это example twitter response примерно 8,5 КБ с удалением пробела. Скажем, 10KB для каждой отдельной записи для простоты.

Теперь, сколько записей вы планируете снижать? 10? 100? 1000? Скажем 1000 записей этого типа. Это 10 000 КБ или примерно 10 МБ.

С конструкциями здесь 10 МБ (Edit: в зависимости от конкретного ограничения, которое вас беспокоит, может или не может быть) тривиального объема памяти/хранилища для использования в вашем приложении.

Вам необходимо сделать подобный процесс в вашем конкретном прецеденте и посмотреть, будет ли объем данных, который вы хотите сохранить, будет проблемой для устройств, которые вы должны поддерживать.

Более важной вещью, которую следует учитывать, является воздействие производительности на большое количество данных в одном потоке, чтобы делать такие вещи, как манипулирование данными, объединение/слияние и т. Д., Если это будет необходимо.

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

+0

О, это гипотетическая проблема размещения 10 Мб данных. Это действительно проблема *. (+1 хотя :-P) – zerkms

+1

Теперь серьезно: ваш ответ идеально согласуется с моей точкой: исследуйте и решайте, когда это становится * настоящей * проблемой. Итак ... :-) – zerkms

+0

@zerkms yup. Мы «жестоко» согласны. :) –

Смежные вопросы