有什么理由不检查silverlight应用程序中的"应用程序库缓存"和"GPU加速"吗?

Edw*_*uay 16 silverlight

设置silverlight应用程序的属性时,我会看到未选中的框:

  • 使用应用程序库缓存减少XAP大小
  • 使用GPU加速

更小的下载大小更快的速度声音对我来说很好,这让我想知道为什么这些没有默认打开.

那么这些选择的缺点是什么?

Ant*_*nes 13

使用应用程序库缓存减少XAP大小

好处

这通过允许将使用dllname .extmap.xml文件配置的库放在单独的zip文件中来减少XAP大小.这些zip文件将作为初始XAP下载的一部分进行请求.

优势来自两种情况.首先,如果您更新代码并在大多数情况下重建XAP,则唯一更改的是XAP,zip文件保持不变.因此,当客户端重新访问您的应用程序并需要下载最新版本时,很可能只有XAP被获取,拉链是相同的从浏览器缓存中提供服务(可能是在服务器的"304 Not Modified"响应之后) ).

另一种情况是您的站点上有多个SL应用程序.他们将共享相同的拉链,因此多个应用程序的总下载量大大减少.

缺点

对于一次性应用程序,第一次客户端访问将是至少与XAP中保存的所有库一样昂贵的下载.在某些用途中(具有单个应用程序的站点的大量唯一访问者)可能更希望保留单个XAP,尤其是在XAP本身不经常更改的情况下.

如果有多个XAP共享同一组库拉链,则存在"DLL Hell"的危险.可能有人可以更新XAP,该XAP使用其他XAPS未经过测试的新版本库,并且无意中破坏了所有其他XAPS.有一些好的做法可以消除这个问题,但它比轻弹Checkbox需要更多的努力.

结论

鉴于第二个缺点,我认为不默认此功能是一个明智的选择.

使用GPU加速

我不打算讨论这个优点/缺点.只需回答默认情况下关闭的原因.

只要打开它就没有任何优势,你需要启用XAML中的哪些元素才能通过CacheMode属性使用它.此外,根据您的工作情况,这可能仍然没有给您带来任何好处.

打开它会消耗额外的资源,例如视频内存,你不会希望这种情况发生,除非你已经明确地CacheMode在你的应用程序的某个地方使用,并希望它会产生真正的不同.也有可能弄错并让事情变得更糟.


Pag*_*age 2

我相信这两个功能都是在 Silverlight 3 中引入的。选择加入它们的原因之一是为了保持向后兼容性。

在某些情况下,打开 GPU 加速实际上会降低性能或导致其他问题。通过使其成为一个选择加入的过程,您更有可能注意到后果(好或坏),而不是默认打开的设置并想知道为什么您的应用程序存在性能问题。