任何不检查的理由;“应用程序库缓存”;及;“GPU加速”;在silverlight应用程序中?

任何不检查的理由;“应用程序库缓存”;及;“GPU加速”;在silverlight应用程序中?,silverlight,Silverlight,设置silverlight应用程序的属性时,我会看到未选中的框: 通过使用应用程序库缓存减少XAP大小 使用GPU加速 较小的下载大小和更快的速度声音对我很好,这让我想知道为什么默认情况下不启用这些功能 那么这些选择的缺点是什么呢?我相信这两个功能都是在Silverlight 3中引入的。选择加入的一个原因是为了保持向后兼容性 在某些情况下,启用GPU加速实际上会降低性能或导致其他问题。通过使其成为一个选择加入过程,您更有可能注意到结果(好的或坏的),而不是默认情况下打开的设置,并想知道为什

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

  • 通过使用应用程序库缓存减少XAP大小
  • 使用GPU加速
较小的下载大小和更快的速度声音对我很好,这让我想知道为什么默认情况下不启用这些功能


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

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

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

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

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

优势来自两种情况。首先,如果您在大多数情况下更新代码并重新生成XAP,那么唯一需要更改的就是XAP,zip文件保持不变。因此,当客户端重新访问您的应用程序并需要下载最新版本时,很可能只获取XAP,相同的ZIP从浏览器缓存中提供(可能在服务器发出“304未修改”响应后)

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

缺点

对于一次性应用程序,第一次客户端访问的下载成本至少与XAP中保存的所有库的成本一样高。在某些使用中(使用单个应用程序的站点具有大量的独立访问者),可能更希望保留单个XAP,特别是如果XAP本身没有经常更改的话

如果有多个XAP共享同一组库ZIP,则存在“DLL地狱”的危险。可能有人会更新一个XAP,该XAP使用其他XAP尚未测试过的库的更新版本,并无意中破坏所有其他XAP。有一些很好的实践可以消除这个问题,但这比点击复选框要花费更多的精力

结论

特别是考虑到第二个缺点,我认为不默认此功能是明智的选择

使用GPU加速 我不打算讨论这种方法的优点/缺点。只需回答为什么默认关闭

仅仅打开它并没有任何好处,您需要通过
CacheMode
属性启用XAML中的哪些元素可以使用它。此外,根据你正在做什么,这可能仍然不会给你带来任何好处


只要打开它就会消耗额外的资源,比如视频内存,除非你已经在应用程序中的某个地方特别使用了
CacheMode
,并且希望它能起到真正的作用,否则你不会希望发生这种情况。还有可能出错,使事情变得更糟。

谢谢。如何使用
CacheMode
属性显示图像?我可以把它设置在ImageViewer上吗?