读取图片的速度跟什么东西有关?

我在软件中有一段代码来调用一张图片:

light1.Source = new BitmapImage(new Uri("/xxx;component/Images/lightOff1.jpg", UriKind.Relative));

这段代码第一次调用的时候,大概在电脑中要花费3s左右的时间完成,第二次调用的时候一般只需要0.3s就可以完成,不过有时候也会花3s左右,请问同一个方法为什么两次执行的时间会不一样?读取图片的速度跟什么有关?会不会是我第二次读取的时候之前需要进行的某些过程就不需要进行了所以从3s耗时降到0.3s左右

另外我用绝对路径的方式读取图片花费的时间也比这种相对路径时间长的多

light1.Source = new BitmapImage(new Uri("/D:/programming/xxx/new version/Images/lightOff1.jpg));

第一次读取完有缓存了呗,之后再读取直接从缓存里拿了所以自然就快了

每个浏览器都有缓存机制,内容变更会重新获取,内容不变会先获取缓存数据。当然读取图片的速度和网速、图片大小都有关联的。