Проблема с производительностью при загрузке изображений на iPhone с сервера - PullRequest
1 голос
/ 24 января 2011

У нас есть приложение на iPhone.Это приложение отображает 25 продуктов на странице / экране.Текстовые элементы, такие как название продукта, цена, скидка, URL-адрес изображения продукта и т. Д. Всех 25 продуктов, сначала загружаются с сервера.

После этого мы делаем 25 синхронных запросов на загрузку 25 изображений продуктов.один за другим.Каждое изображение имеет размер около 25 КБ, и оно имеет размер примерно 300 на 400 пикселей, и нам нужны только изображения размером 72 на 72 пикселя для отображения на iPhone.Мы замечаем, что для отображения одного экрана / страницы требуется около 40 секунд, и такая производительность не очень хорошая.Поэтому мы исследуем, как повысить производительность.

  1. Повысится ли производительность, если мы уменьшим размер изображений на сервере до 72 на 72 пикселя.
  2. И это тожеМожно ли загрузить все 25 изображений с сервера на iPhone?Если да, то можете ли вы поделиться своими подходами относительно того, как это сделать?Мы хотим сделать это, только если это может улучшить производительность.

1 Ответ

2 голосов
/ 24 января 2011

Я предлагаю вам задать это в Stackoverflow, как уже упоминалось.

С точки зрения программиста, если вам нужны только 72x72 изображения, вы обязательно должны принести это.Вы будете экономить пропускную способность, батарею и вычислительную мощность.

Тогда 25 запросов синхронизации кажутся плохой идеей, почему бы не принести всю страницу (или две страницы) одновременно?

Запрос URL-адреса является «медленным» по своей природе, поэтомучем меньше вы зарабатываете, тем быстрее это будет работать.

Я бы изменил сервер, чтобы разрешить пакетную выборку, как в «дать мне первые 25», а затем вы обрабатываете их локально.Затем вы можете получить следующие 25 асинхронно (и с преимуществом), когда пользователь нажимает следующий, у вас уже есть (и всегда есть 1 или 2 заранее).

Используйте Cache, сохраняйте их локально, если можете, и всегда проверяйте, доступна ли эта страница локально, чтобы вам не приходилось повторно извлекать записи, если пользователь нажимает назад, а затем снова снова.То, что загружено, остается загруженным :) Страницы продукта не должны меняться так часто.

Для более конкретных реализаций я предлагаю вам перейти к StackOverflow.

...