呵呵为什么说有难度呢?因为我GOOGLE大部分回答基本都是:软件的一部分保留在系统缓存中。可惜这个回答太笼统了。众所周知,Windows程序启动的时候需要加载很多DLL,如果某个DLL在系统启动的时候就预先加载了,那么程序启动后就不需要再在硬盘上读取,而只需要把内存中的DLL映射到该程序的地址空间即可。我做了个实验,自己写了个小程序,在启动某个软件之前先用LoadLibrary函数把它依赖的所有DLL挨个儿加载一遍,发现启动该软件的速度确实提高了一些,但是仍旧不能达到正常二次启动的速度。那到底还有什么问题呢?我不记得从哪里看到的了,LoadLibrary好像使用的是内存映射文件的技术,也就是说并不是一次性地把DLL文件都读到内存中的。另外DLL也分很多,除了普通的外还有基于COM技术的、.NET技术的等等,是不是其中还有很多不为人知的机理就不清楚了...
从而加快了启动速度。
具体google .pf预读取文件
俺再具体点说罢:说慢,
是访问文件慢
是加载dll慢
是初始化属性慢
是访问网络/网站慢
是访问数据库慢
是某些特殊的原因,比如去安全,慢硬盘速度慢,可归为访问文件慢