1、硬件配置的问题,特别是显存小于128MB,内存小于512MB。

2、硬件冲突以及驱动程序不匹配的(当然由于这些原因多导致的启动慢,存在于所有windows系统上)

其实还可能有另外一个原因:superfetch,这原本是Windows Vista的新技术,用于加速系统运作。

但实际上,在一些慢速硬盘的设备,例如笔记本上,关闭它反而可以提升系统响应速度。我在自己的笔记本上进行测试,关闭superfetch,然后观察从打开电源到用户登录完成,也就是说登录后,硬盘灯不再常亮,这个过程所需要的时间,节约了大概5-7分钟。

在理解为什么superfetch会影响到系统启动速度的时候,我们需要先讲解几个技术,以充分了解它们的原理。

虚拟内存 包括Vista在内的Windows操作系统都一直在利用虚拟内存,它的作用在于,当物理内存不能满足应用需要的时候,操作系统将开始把应用程序在内存中 的部分数据,存储到硬盘,从而释放RAM以备他用。这些被存储到硬盘的数据,以文件的形式存放,通常在根分区,名为Pagefile.sys的隐藏文件。

当需要调用这些数据的时候,操作系统查找pagefile中的数据,并将之返回到内存。在这过程中,由于需要反复的磁盘读写,所以可能导致应用程序反应很慢。

预读Prefetch 于是到了Windows xp,操作系统的设计人员就设计出一种成为 预读Prefetch的技术,这种技术在系统或者应用程序启动过程中,监视数据在磁盘和内存之间的移动规律或者状况,预先把那些读写频率较高的数据,保存 到 %systemroot%\Prefetch文件夹扩展名为.pf的文件中,并一种规则高效的方式存放这些文件。这样,当这些数据被重复读取的时候,就可 以直接从这些缓存文件中读取,而不用重新读取硬盘扇区、磁道,寻找数据的原始位置,自然也就加速了应用程序的响应速度。但这种技术主要的缓存方式仍然是基 于磁盘的。

快速预读Superfetch 到了Windows Vista,因为计算机的内存已经日益增大,设计人员开始考虑使用内存作为预读快取的数据存放空间。但出于两方面的原因,一内存是不可记忆的,一旦断电所 有数据都将丢失;二 内存并没大到可以容纳所有应用程序的程度,故而 Superfetch的读写操作虽然主要是基于内存,但是将数据写入内存的同时,仍然会写入硬盘,以用于数据交换。这些数据以文件形式存在,通常它们的存 放位置在 %SystemRoot%\Prefetch 目录中扩展名为 .db 。

同时,由于 Superfetch技术是构建在Prefetch的基础之上,所以Vista在启用 Superfetch的同时也开启了 Prefetch功能,这也进一步加剧了磁盘读写。如果您的计算机硬盘速度碰巧比较慢,比如笔记本的 5400转硬盘,那么Superfetch反而会导致您的系统变慢。