Есть ли причина не проверять "кэширование библиотеки приложений" и "ускорение графического процессора" в приложениях Silverlight? - PullRequest
16 голосов
/ 09 марта 2010

При настройке свойств для приложения silverlight я вижу не отмеченные флажки:

  • Уменьшите размер XAP с помощью кэширования библиотеки приложений
  • Использование ускорения графического процессора

Меньший размер загрузки и более высокая скорость звук хорошо для меня , что заставляет меня задуматься, почему они не включаются по умолчанию .

Каковы недостатки этих выборов тогда?

Ответы [ 2 ]

13 голосов
/ 09 марта 2010

Уменьшите размер XAP с помощью кэширования библиотеки приложений

Преимущества

Это уменьшает размер XAP, позволяя тем библиотекам, для которых настроен файл dllname .extmap.xml, помещаться в отдельные zip-файлы. Эти zip-файлы будут запрошены при начальной загрузке XAP.

Преимущество заключается в двух сценариях. Во-первых, если вы обновляете свой код и перестраиваете XAP большую часть времени, единственное, что меняется, это XAP, zip-файлы остаются без изменений. Следовательно, когда клиент повторно посещает ваше приложение и ему необходимо загрузить последнюю версию, вполне может быть, что только XAP-файл извлекается, а zip-файлы одинаково доставляются из кэша браузера (вероятно, после ответа «304 Not Modified» с сервера ).

В другом сценарии на вашем сайте есть несколько SL-приложений. Они будут использовать одни и те же почтовые индексы, и поэтому общая загрузка для нескольких приложений значительно уменьшится.

Недостатки

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

Если существует несколько XAP, совместно использующих один и тот же набор библиотечных архивов, существует опасность «DLL Hell». Потенциально кто-то может обновить XAP, который использует более новые версии библиотек, с которыми другие XAPS не были протестированы, и непреднамеренно нарушить все остальные XAPS. Есть хорошие методы, которые могут устранить эту проблему, но это требует немного больше усилий, чем нажатие на флажок.

Заключение

В свете, в частности, второго недостатка, я думаю, что был разумный выбор не включать эту функцию по умолчанию.

Использование ускорения графического процессора

Я не буду вдаваться в достоинства / недостатки этого. Просто ответьте, почему он выключен по умолчанию.

Вы не получаете никакого преимущества, просто включив его, вам нужно включить, какие элементы в XAML будут использовать его через свойство CacheMode. Кроме того, в зависимости от того, что вы делаете, это может не принести вам никаких преимуществ.

Простое его включение потребует дополнительных ресурсов, таких как видеопамять, этого не произойдет, если вы специально не используете CacheMode по крайней мере где-то в своем приложении и, надеюсь, там, где это будет иметь реальное значение , Также возможно ошибиться и усугубить ситуацию.

2 голосов
/ 09 марта 2010

Я полагаю, что обе эти функции были представлены в Silverlight 3. Одной из причин, по которым они подписались, является обеспечение обратной совместимости.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...