聊到电脑卡顿这个问题,在这个基本上人手一台电脑的时代,大多数人应该都遇到过,那么为什么电脑会卡呢?
其实电脑卡顿的原因无外乎四种:
- CPU 使用率太高。现象是整个系统运行缓慢,例如点击某个按钮,好久才有反应。
- 内存使用率太高。现象是新打开一个程序,等了好久才能打开。
- 磁盘读取速度太慢。现象是复制一个文件,或者保存一个文件需要很久的时间。
- 网络连接速度过慢。现象是下载某个东西或者在线处理一些内容需要等待比较久的时间。
以上四种原因可能单一或同时存在。
有人可能会问,为什么是这四种?其实这跟计算机的原理有关,但是我们在这里不讨论那么高深的东西。
其实为什么是这四种原因微软都已经告诉你了,在一个很神奇的地方,任务管理器。我们只需要一双善于发现的眼睛。
这里我们不讲怎么使用任务管理器,因为好多人可能根本不会用到它,所以我们只是根据它所展示出来的四种数据来讲可能导致卡顿的原因。
以我的电脑为例,我们从这四种方面来一一解释。
![22b9809ef839d9ca73a74727c3627d85.png](https://i-blog.csdnimg.cn/blog_migrate/c8868466f89e839ebb136a4a505d48ec.jpeg)
CPU
- 首先是 CPU 使用率太高,CPU 在计算机种的角色是计算单元,也就是说一切需要计算的东西都需要 CPU 处理,那么 CPU 的处理速度至关重要。这里要澄清两个概念,CPU 使用率和 CPU 主频(处理速度)。我们将 CPU 的核心比喻为计算单元,当然了,不是一比一的关系。
- CPU 使用率的意思是某一个时间点 CPU 中有多少计算单元处于忙碌状态,我们假设我们的 CPU 一共有 100 个计算单元,我们播放了一部高清电影,播放这部高清电影需要使用到 80 个计算单元,那么如果我们再打开一个需要 50 个计算单元的游戏的话,我们总共需要 50+80=130 个计算单元,但是我们的 CPU 一共只有 100 个计算单元,不够用怎么办,很简单,排队呗,一个个的来。但是排队就会直接导致一个问题,等待时间过长。之前一个操作对应一个计算单元很快就可以得到计算结果,但是现在我们需要的计算单元被电影播放器占用了,那么我们就需要等待播放器将所需要解码的数据解码完毕,腾出空闲的计算单元,才可以结算我们所需要计算的数据。
- 再来说 CPU 主频,还是以计算单元为例,假设我们还是一个 CPU 拥有 100 个计算单元,但是每个计算单元的算力是之前 CPU 的一半,也就是说我们之前一份数据使用一个计算单元来计算需要一秒钟计算完毕,但是现在的 CPU 需要使用两秒钟才可以计算完毕,以此为前提。我们还是继续播放高清电影,电影播放器仍然占用 80 个计算单元,我们不打开游戏,使 CPU 保持有 20 个计算单元空闲,但是由于计算单元的算力下降了一半,所以就导致我们的高清电影解码比较慢,出现了肉眼可见的卡顿现象。这时候计算单元的数量是有空闲的,为什么还是会卡顿呢?就是因为计算单元的算力下降了,不足以快速的完成数据计算的任务,达不到我们肉眼需要的每秒 30 帧的解码速度,所以会导致卡顿。你可能会问,那不会将剩余的计算单元也利用起来吗?很可惜,一般任务比较简单的情况下是可以的,但是好多情况下是不可以的,为什么呢?因为越是逻辑复杂的任务,计算机多核并行计算越是困难,这就是为什么近些年新出的游戏大作为什么总是有人说它多核优化不好导致游戏在多核 CPU 中运行不如在高主频 CPU 中运行流畅的原因,同时也是服务器 CPU 不适合打游戏的原因,就是因为它的主频太低了。以上计算单元的概念为虚拟概念,只为了方便描述 CPU 的工作状态。
- 以上就是 CPU 导致卡顿的可能原因。怎么解决呢?当卡顿发生时,我们需要排查 CPU 的使用率是否处于比较高的状态,如果是,那么需要查找是哪个进程占用了比较高的 CPU,找到它,确定它不是我们工作所使用的进程然后结束掉它,即可发现系统卡顿现象会环节。如果系统仍然卡顿,那么我们需要排查 CPU 主频是否较低,由于一般情况下新的 CPU 都具备了自动睿频功能,这种情况下需要对 CPU 比较了解,才可以知道什么状态下 CPU 应该处于什么状态,这里由于篇幅太长不展开描述了。
内存
这里的内存指的是运行内存。
如果卡顿时,CPU 排查过了没有异常,我们需要排查内存。
内存在计算机中的作用是作为 CPU 上所运行的程序数据的暂存空间。如果我们运行比较多的程序,每个程序都会占用一定的内存空间,就会导致我们的内存使用率比较高,在内存使用率持续的居高不下的情况下,操作系统就会进行动作,将好久没有用到的内存,搬到磁盘上一个叫做虚拟内存的文件中。虚拟内存,字面意思就是一个虚拟出来的内存空间,里边存储的也是内存里的数据,但是由于是存放在磁盘上的文件,所以它的读写速度和内存相比会有一个很大的差距。
为了防止内存空间耗尽导致操作系统出现问题,在内存使用率比较高的情况下,操作系统在后台就会默默的维护虚拟内存(当然了,前提是开启了虚拟内存这个功能,一般情况下不人为干预的话操作系统是默认开启的)。如果我们开启了很多应用程序,就会导致操作系统忙于读取虚拟内存中的内容写入到内存中,然后将内存中长期不用的内容写入到虚拟内存中,由于虚拟内存存储在磁盘(尤其是机械硬盘)上,读取写入速度较慢,这两种操作频繁进行就会导致系统出现卡顿,从而影响我们使用电脑的体验。
有朋友问我虚拟内存的大小问题,这里顺便解答下。虚拟内存是可以高于内存的,为什么呢?因为虚拟内存中的内容只是内存中长期不使用的内容,而不是内存中全部的内容,也不会将全部虚拟内存中的内容一次性全部写入到内存中。因为磁盘空间很大,所以磁盘读写速度还可以的话大一点的虚拟内存不会很影响操作系统运行的。但是为了让更智能的操作系统可以根据操作系统的需要动态的管理虚拟内存的大小,还是不建议不熟悉的用户自行调整虚拟内存的大小。
所以解决方案不言而喻了,在排查完 CPU 的问题以后,需要查看下内存的使用率是否居高不下,如果内存的占用率很高,就需要排查是哪个程序导致占用了大量的内存,尝试关掉一些不使用的程序,将内存占用率降低一些尝试观察是否可以解决卡顿的问题。
磁盘
磁盘就是指我们存储离线数据的设备。
因为操作系统和程序都是存储在磁盘上的,所以磁盘的读写速度很大程度上决定了操作系统的运行速度(或者说开机速度,因为操作系统在开机时读取了需要的内容存放在了内存中,所以一般情况下开机后磁盘的读写速度不会拖慢操作系统)。
由于操作系统的缓存特性,在开机后,磁盘的读写速度很大程序上影响了我们打开新的程序、新的文档、新的电影、新的游戏等等所需要的时间。速度太慢的磁盘会让我们打开新文档的时间变长,可能会让程序卡死,可能会让游戏加载时间变长。所以磁盘的排查还是比较简单的,因为如果我们没有进行一些高 IO 的动作(例如复制粘贴大文件)的话,一般情况下多等一会就是了。但是鉴于现在固态硬盘的流行,一般情况下磁盘的读写速度已经基本不会影响到我们的使用了。
这里解释下 C 盘是否可以存放软件或者说 C 盘东西太多会不会影响电脑速度的问题。
要了解这个问题,要从两个方面来说,存储器是机械硬盘的时候,的确,C 盘放太多东西,尤其是软件的情况下会严重影响到机械硬盘的寻道速度,从而导致 C 盘读写速度变慢,影响系统的运行速度。存储器是固态硬盘的时候,C 盘放多少东西其实已经基本不影响C盘的读写速度了,因为固态硬盘的 4K 读写不会进行寻道,速度很快,所以软件等等文件大可以放在C盘中,但是要注意重要文件不要放在 C 盘,防止系统崩溃时无法备份C盘文件。
尤其是好多人的电脑是固态+机械,这种情况下将固态当作系统盘,然后将软件装到机械中,会严重影响到软件的运行速度。因为在启动软件的时候,会不停的读取机械硬盘,导致软件启动比较慢,运行比较慢。所以在这种情况下,推荐将软件全部装到固态中,可以充分发挥固态的随机读写特性,使软件做到秒开。
网络
最后一个就是网络,网络这个不用解释,会用电脑的人应该都会懂的。
网络过慢的情况有两种,一个网络延时高,表现就是游戏很卡顿,游戏操作不跟手。二是网络带宽低,表现就是下载文件时间变长,看在线电影频繁缓冲,缓冲时间长。
首先如果网络延时很高的话,需要对比排查是否是 WiFi 信号不好,路由器是否温度过高,是否有人正在大量下载等等问题。如果是网络带宽很低的话同样需要检查网线质量是否有问题,因为网线质量往往影响带宽高低,或者是否有人进行大量下载等等。
以上就是电脑卡顿可能的原因以及对应的解决方法,小伙伴们可以根据自己的情况自行排查。