2

我注意到第一次从 uri 创建图像需要很长时间,但是在创建一个图像之后,其他图像的加载速度非常快(第一个图像甚至更快)。

第一次使用图像对象时是否有某种初始化?有没有办法提高这种性能?

我正在加载这样的图像:

new BitmapImage(new Uri("directlink"));

谢谢

4

3 回答 3

2

有很多可能性:

  1. 第一次尝试访问图像时,您可能会导致加载额外的程序集。
  2. JIT 编译可能正在编译类型,导致第一次使用此代码时稍有延迟。
  3. 由于 DNS 查找速度较慢,您第一次尝试访问 URL 域时可能会遇到问题。后续图像可能正在使用 DNS 缓存。
于 2012-06-18T17:13:00.463 回答
0

猜测,这可能是由于即时 (JIT) 编译。

当您执行程序时,CLR 会“按原样”从 IL 编译为本机指令。这意味着您第一次访问任何代码时,都会在编译时受到打击,但一旦完成,您就不会再次受到惩罚。

于 2012-06-18T17:11:47.860 回答
0

是的,需要创建对象,然后是连接对象,需要打开连接,正确的方法等

于 2012-06-18T17:13:25.197 回答