Windows Phone 7 - лучшие практики для ускорения извлечения данных - PullRequest
2 голосов
/ 15 марта 2011

У меня есть приложение для Windows Phone 7, которое (в настоящее время) вызывает службу OData для получения данных и выбрасывает их в список. Сейчас это ужасно медленно. Первое, о чем я могу подумать, это то, что OData возвращает намного больше данных, чем мне действительно нужно.

Какие предложения / рекомендации по ускорению извлечения данных в приложении Windows Phone 7? Что-нибудь, что я мог бы сделать в приложении, чтобы ускорить поиск данных и быстрее поставить их перед пользователем?

Ответы [ 3 ]

5 голосов
/ 15 марта 2011

Похоже, у вас уже есть какие-то подсказки о том, что преследовать.

Вот некоторые основные вещи, которые я бы попробовал:

  1. Сделайте ваши HTTP-запросы как можно меньше -если возможно, выбирайте только те объекты и поля, которые вам абсолютно необходимы.
  2. Попробуйте использовать несколько HTTP-запросов для постепенного извлечения данных вместо того, чтобы извлекать все за один раз (это, конечно, может замедлить работу приложения, нокак правило, приложение работает быстрее)
  3. Для больших передач текста убедитесь, что содержимое передается в архив (это должно происходить на уровне HTTP)
  4. Будьте осторожны, чтобы XAML отображалданные не слишком раздуты - большая структура XAML, повторяющаяся в списке, может вызвать медлительность.
  5. При оптимизации никогда не думайте, что вы знаете, где проблема со скоростью - всегда сначала измеряйте!
  6. Будьте осторожны, когдавставка изображений в список - приложение MS MarketPlace часто заикается на моем телефоне - и я думаю, что это вызвано тем, чтопроцесс рендеринга.
2 голосов
/ 15 марта 2011

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

Ознакомьтесь с этой записью в блоге Роба Тиффани Обсуждается производительность на основе форматов данных.Он был написан специально с учетом WCF, но пункты все еще применимы.

1 голос
/ 16 марта 2011

Как расширение списка Стюарта:

На самом деле есть 3 области - связь, разбор, пользовательский интерфейс. Измерьте их отдельно:

  • Выполните только связь с выключенной обработкой.
  • Измерение разбора фиксированной строки в формате ODATA.

Верите вы или нет, но это также может быть и пользовательский интерфейс.

Например, неправильное использование ProgressBar может привести к резкому снижению скорости обработки. (В общем, вы не должны использовать анимацию пользовательского интерфейса, как описано здесь .)

Также убедитесь, что обработка пользовательского интерфейса не блокирует передачу данных.

...