我在同一台机器上测试了许多不同的操作系统。 Windows 7、8、8.1、OS X、Ubuntu、Linux Mint、Android x86 和 Remix 操作系统。
所有类 Unix/基于 Unix 的操作系统都有一个共同点,关闭时间接近于零,大约 3 秒。
所有 Windows 版本的关闭时间都相当长,我说的是 30 秒到一分钟。
这有一般原因吗?
答案1
几个一般想法我受够了这个一般问题:
(1) 在 Windows 关闭期间,大多数服务都会生成至少一个终止事件。有时每个服务可能有许多事件。例如“NTP 服务正在终止”、“打印机驱动程序收到终止信号”、“打印机驱动程序正在刷新队列”、“打印机驱动程序正在退出”。这些事件是“对象”,创建和销毁都很慢,这加起来就是关闭时间。
在 Unix 上关闭期间,大多数进程只是在控制台或 /var/log/messages 上打印一行并退出。快多了。
(2) 关机期间,Windows GUI 会保存一个很多状态信息,其中大部分存储为对象。
unix 上的 CLI 几乎没有什么可保存的,除了 shell 历史文件。大多数状态信息都在简单的文本文件中。快多了。
(3)Windows可能会缓存很多东西,这些必须刷新缓存关闭时到文件系统。
在更好的文件系统上,通过定期“fsync”执行,在 UNIX 上可以更好地处理缓存。快多了。
(4)Windows可能会给每个进程(或服务)很多更多的时间退出,挂起的进程可能会停留更长时间直至强行终止。
Unix 可能会给每个进程(或服务)退出的时间较少,并且大多数进程可能会快速响应。快多了。
如果有一个具体情况,那么可能有一个具体正确答案,否则,我们将不得不采取模糊、不准确、过于简单的概括。