设置Silverlight应用程序的属性时,我看到未选中的框:
通过使用应用程序库缓存来减小XAP大小
使用GPU加速
较小的下载大小和较快的速度对我来说听起来很不错,这使我想知道为什么默认情况下未启用这些功能。
那么这些选择的缺点是什么?
最佳答案
通过使用应用程序库缓存来减小XAP大小
优点
通过允许将配置有dllname .extmap.xml
文件的那些库放置在单独的zip文件中,可以减小XAP的大小。这些zip文件将在初始XAP下载中被请求。
优点来自两种情况。首先,如果大多数时候更新代码并重建XAP,唯一改变的就是XAP,那么zip文件将保持不变。因此,当客户端重新访问您的应用程序并需要下载最新版本时,很可能仅获取XAP,而从浏览器缓存中获取的是相同的zip(可能是在服务器发出“ 304 Not Modified”响应之后) )。
另一种情况是您的站点上有多个SL应用程序。他们将共享相同的zip,因此大大减少了多个应用程序的总下载量。
缺点
对于一次性应用程序,首次客户端访问将是至少与将所有库保存在XAP中一样昂贵的下载,即使不昂贵。在某些用途中(拥有单个应用程序的网站的大量唯一身份访问者),可能更希望保留单个XAP,尤其是在XAP本身不经常更改的情况下。
如果有多个XAP共享同一组库zip,则存在“ DLL Hell”的危险。可能有人可以更新XAP,该XAP使用的是其他XAPS尚未测试过的库的较新版本,并且无意间破坏了所有其他XAPS。有一些好的做法可以消除此问题,但比轻按“复选框”要花费更多的精力。
结论
特别是考虑到第二个缺点,我认为不启用此功能是一个明智的选择。
使用GPU加速
我不打算讨论它的优点/缺点。只需回答为什么默认情况下关闭即可。
仅仅打开它并没有获得任何好处,您需要通过CacheMode
属性启用XAML中的哪些元素可以使用它。另外,根据您的操作,这可能仍无法为您带来任何好处。
仅仅打开它会消耗视频内存等额外资源,除非您明确地至少在应用程序中的某个地方使用了CacheMode
,并希望它能带来真正的改变,否则您不会希望这种情况发生。也有可能把它弄错并使情况变得更糟。