2011-12-27 2 views
0

В настоящее время я разрабатываю приложение, которое загружает много изображений из Интернета и сохраняет их локально (я использую SDURLCache). Однако старые изображения снова удаляются с диска, поэтому мне было интересно, какой лучший размер кеша.
Преимущество большого кеша, очевидно, в том, что больше изображений сохраняется, что приводит к лучшему UX. Недостатком является то, что изображения нуждаются в большом количестве пространства, и у пользователя будет больше свободного места на диске. Размер, о котором я думаю, составляет 20 МБ. Мне кажется настолько большим, что я спрашиваю вас, каково ваше мнение.Лучший размер кеша для приложений iOS

ответ

0

Учитывая, что самые маленькие iDevices имеют 8 ГБ памяти, я не думаю, что кеш 20 МБ слишком велик, особенно если он значительно улучшает производительность приложения. Кроме того, помните о том огромном преимуществе, которое сетевой кеш может иметь для работы от батареи, поскольку использование сети очень дорого во время работы от батареи.

Определение идеального размера, однако, является трудным, без дополнительной информации. Как часто просматривается одно и то же изображение? Насколько велика каждая фотография (т. Е. Сколько снимков может удерживать 20 МБ). Как часто изображения нужно удалять из кеша, чтобы добавить новые?

Если вы постоянно меняете изображения в кеше, это может нанести отрицательный эффект на срок службы батареи из-за увеличения использования диска.

+0

Ну, это действительно не улучшает производительность. Это скорее улучшает использование памяти, поэтому приложение не разбивается, если загружено много изображений. Одна картинка получает доступ примерно 2 раза. А в 10 МБ может поместиться 15 или 20 снимков. – lbrndnr

+0

Ahh Я вижу, если это чисто для сохранения изображений из памяти, вам просто нужно определить, сколько изображений вы можете безопасно хранить в памяти сразу, не выбирая ошибок памяти на более старых устройствах (X), затем узнайте максимальное количество снимков, которые вам понадобятся для загрузки сразу (Y), и средний размер каждого изображения (Z). Тогда ваш соответствующий размер кеша просто (Y - X) * Z, дайте или возьмите несколько МБ. Если это слишком велико, вам может потребоваться переосмыслить то, как работает ваше приложение. –

+0

Также я не знаком с SDURLCache, поэтому, если это все или ничего (т. Е. Все изображения в памяти или все кэшированные), то уравнение просто Y * Z. Хотя вы всегда можете написать собственное решение, соответствующее вашему нуждается в точности. –

2

Лучшим способом определения размера кеша является проверка. Запустите приложение под инструментами для измерения производительности и использования батареи. Продолжайте увеличивать размер кеша, пока не увидите различия в производительности. Это самый большой размер, который вам нужен, по крайней мере, в условиях тестирования. После того, как вы установили этот размер, уменьшите размер до тех пор, пока производительность едва приемлема для определения наименьшего допустимого размера.

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

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