2

我有一个 Silverlight 应用程序,它从 IIS 加载非常慢。当我调试时,加载大约需要 5 秒,而从服务器加载则需要一分钟以上。xap 的大小只有 8 MB,对我来说似乎不是特别大,虽然我听别人说减少 xap 中的媒体量,但我的应用程序只包含三个低分辨率图标,应该不多影响。我已经通过从 ~10Mbps 到 ~24Mbps 的互联网连接对此进行了测试,似乎并没有太大的区别。由于频繁更改,我禁用了应用程序缓存以便更新通过,但允许缓存仍然无助于首次用户的 1-2 分钟加载时间(不完全是一个很好的第一印象)。

不用说,这给我留下了几个问题:

  • 这听起来像是硬件/IIS 问题还是我可以从应用程序方面控制的问题。
  • 8MB xap 文件是否比典型的 xap 大?
  • 什么可能导致调试加载时间和部署加载时间之间的差异?
  • 我无法想象会出现这种情况,但是可以预期 1 分钟的启动时间吗?
4

4 回答 4

2

您是否遵循最佳实践

于 2012-02-15T21:40:15.633 回答
1
  1. It does not sound like a hardware/IIS issue. Serving 8Mb is a cinch.
  2. Is an 8MB xap file larger than a typical xap? It sounds pretty big to me. Rename the xap file with a zip extension and see what is inside.
  3. What could cause the difference between the debug load times and the deployed load times? It is virtually all network calls. Run fiddler and observe them. Fiddler also can simulate different modem speeds.
于 2012-02-16T03:50:09.750 回答
1

8 MB 相当大。我猜这是因为你有很多字体或视频或图像打包在该文件中。如果您需要使其高性能,它们是您需要最小化的第一件事。应用程序可能很小还有很多其他原因,但这些元素特别可以被滥用以使任何人哭泣!

于 2012-02-15T21:13:08.163 回答
1

8 MB 的文件大小对于 xap 文件来说是相当大的。我读过一些人可以将他们的 xap 保持在 250k 的地方,即使对于图形密集型应用程序也是如此……但是你必须做很多事情来降低尺寸,比如以某种方式从 xap 外部动态加载图像或视频。我不知道该怎么做,但这无论如何都不是你的问题。

我有几个应用程序具有相当大的 xap 文件大小,直到我了解到对于您拥有的每个对 dll 的引用,它都会增加 xap 的大小,因为它必须在编译时将 dll 包含在 xap 中。我过去只是将 dll 引用添加到我正在测试的项目中,或者可能是因为我认为我可能需要它……然后将未使用的 dll 留在其中……但随后 xap 的大小将继续增长。这是我第一次学习silverlight时回来的时候......

我发现,如果我只是清除未使用的引用,它会将 xap 大小从 8 MB 缩小到 3 个半(这仍然有点重,但没有 8 个那么糟糕)。我还查看并查找了仅在几个地方或一个地方使用的 dll 引用,并试图弄清楚我是否可以通过某种方式实现该功能,而不必使用对项目的另一个引用。我告诉你,引用会导致 xaps 很快变得沉重!

您的项目中可能没有额外的、不需要的引用......但它是一个很好的地方,只是为了确保。

于 2012-02-16T00:03:59.317 回答