在创建c#图像时是否存在某种初始化

时间:2012-06-18 17:10:17

标签: c#

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

首次使用图像对象时是否存在某种初始化?有没有办法改善这种表现?

我正在加载这样的图像:

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

由于

3 个答案:

答案 0 :(得分:2)

有很多可能性:

  1. 第一次尝试访问图像时,可能会导致额外的程序集加载。
  2. JIT编译可能正在编译类型,导致第一次使用此代码时出现轻微延迟。
  3. 由于DNS查找速度慢,您第一次尝试访问URL域时可能会遇到命中。后续图像可能正在使用DNS缓存。

答案 1 :(得分:0)

猜测,这可能是由于Just In Time(JIT)编译。

当您执行程序时,CLR会从IL编译为本机指令“直播”。这意味着当您第一次访问任何代码时,编译时会有一个命中,但是一旦完成,您就不会再次受到惩罚。

答案 2 :(得分:0)

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