locked
Производительность приложений на Windows Phone 7 RRS feed

  • Вопрос

  • Добрый день. Я начинающий разработчик под Windows Phone 7, у меня есть опыт разработки на Silverlight. Сейчас я работаю над проектом который уже реализован под две платформы iPhone и Android, и в процессе столкнулся с такой проблемой, списки сильно тормозят. Для элементов списка реализован шаблон, который содержит одну картинку, три текстовых поля, а также несколько визуальных элементов, которые находятся в скрытом состоянии.. При быстрой прокрутке списка элементы начинают отображаться не сразу, список продолжает вращение, а элементы появляются через какое-то время... как-будто  UI поток спит...  на эмуляторе такое не происходит.. если сравнивать с айфоном, то там такой список просто летает... печально... Подскажите, что может влиять на производительность списка, как можно хоть как-то увеличить производительность. Спасибо.
    9 июня 2012 г. 10:54

Ответы

  • Попробуйте, если это возможно, упростить разметку шаблона данных вашего списка (если есть возможность - можете выложить ее здесь, можно будет обсудить). Попробуйте указать вручную размеры всех элементов вместо Auto (если не прав - поправьте:) ).
    • Предложено в качестве ответа Viktor Borisov 19 июня 2012 г. 5:42
    • Помечено в качестве ответа Abolmasov Dmitry 25 июня 2012 г. 12:58
    15 июня 2012 г. 11:47

Все ответы

  • Добрый день. Я начинающий разработчик под Windows Phone 7, у меня есть опыт разработки на Silverlight. Сейчас я работаю над проектом который уже реализован под две платформы iPhone и Android, и в процессе столкнулся с такой проблемой, списки сильно тормозят. Для элементов списка реализован шаблон, который содержит одну картинку, три текстовых поля, а также несколько визуальных элементов, которые находятся в скрытом состоянии.. При быстрой прокрутке списка элементы начинают отображаться не сразу, список продолжает вращение, а элементы появляются через какое-то время... как-будто  UI поток спит...  на эмуляторе такое не происходит.. если сравнивать с айфоном, то там такой список просто летает... печально... Подскажите, что может влиять на производительность списка, как можно хоть как-то увеличить производительность. Спасибо.

    для начала: размер картинки. Уменьшите разрешение картинки.

    Ну и более продвинуто: динамическая подгрузка элементов списка при прокрутке.

    • Предложено в качестве ответа Viktor Borisov 13 июня 2012 г. 6:08
    13 июня 2012 г. 6:08
  • На днях пробовал LazyListBox, но это производительности не прибавило =(, да этот подход позволяет сэкономить память и это здорово... но проблемы остались.. картинки маленькие.. список тормозит с уже загруженными элементами.. сейчас пробую сделать свою кастомную реализацию ListBox'a

    http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx

    13 июня 2012 г. 8:32
  • На днях пробовал LazyListBox, но это производительности не прибавило =(, да этот подход позволяет сэкономить память и это здорово... но проблемы остались.. картинки маленькие.. список тормозит с уже загруженными элементами.. сейчас пробую сделать свою кастомную реализацию ListBox'a

    http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx

    А сколько элементов в списке?
    13 июня 2012 г. 8:38
  • В списке первоначально 30 элементов, потом они динамически подгружаются... но список тормозит даже при 30 =(..

    13 июня 2012 г. 9:34
  • Попробуйте, если это возможно, упростить разметку шаблона данных вашего списка (если есть возможность - можете выложить ее здесь, можно будет обсудить). Попробуйте указать вручную размеры всех элементов вместо Auto (если не прав - поправьте:) ).
    • Предложено в качестве ответа Viktor Borisov 19 июня 2012 г. 5:42
    • Помечено в качестве ответа Abolmasov Dmitry 25 июня 2012 г. 12:58
    15 июня 2012 г. 11:47
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]

    20 июня 2012 г. 8:22
  • А LongListSelector из toolkit'a не пробовали? И как вы кстати сделали динамическую подгрузку? Ручное добавление элементов через Items.Add или замена всего ItemsSource ?

    • Предложено в качестве ответа Andy V. Solo 21 ноября 2012 г. 18:39
    31 августа 2012 г. 4:01