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

时间:2010-03-09 13:09:37

标签: silverlight

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

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

较小的下载大小更快的速度声音对我好,这让我想知道为什么这些不会被打开默认

这些选择的缺点是什么?

2 个答案:

答案 0 :(得分: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。有一些好的做法可以消除这个问题,但它比点击复选框需要更多的努力。

<强>结论

特别是第二个缺点,我认为这是一个明智的选择,不要默认这个功能。

使用GPU加速

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

只要打开它就没有任何好处,您需要启用XAML中的哪些元素才能通过CacheMode属性使用它。此外,根据您的行为,这可能仍然没有带给您任何好处。

只需打开它就会消耗额外的资源,例如视频内存,你不会希望这种情况发生,除非你已经明确地使用了CacheMode至少在你的应用程序的某个地方,并希望它会在哪里真正的区别。也有可能弄错并使事情变得更糟。

答案 1 :(得分:2)

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

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