你感觉电脑玩网页小游戏动作慢,玩一个游戏开个空间也卡,这背后不是单纯网速问题,而是硬件、浏览器、网络和后台程序一起挤压的结果。先看硬件。现在的网页小游戏虽然体积不大,但渲染方式已经不是当年的Flash动画,大量使用HTML5和WebGL,游戏里的每个动作都要由CPU计算坐标、碰撞和物理效果,再交给显卡绘制。如果你的CPU是几年前的入门级双核,单核性能弱,主频低,就很容易掉帧。内存更直接。Windows10系统开机后默认占用2-3GB内存,4GB内存的电脑只剩不到2GB可用。一个浏览器标签页正常加载需要100到300MB,小游戏脚本复杂时能占到500MB以上,再打开一个空间页面,内存马上耗尽。系统只能用硬盘当虚拟内存,机械硬盘随机读写速度只有每秒几兆,和内存的几十GB带宽差好几个数量级,于是鼠标移动像在泥里拖。
浏览器这边也常出问题。很多人装了十几个扩展插件,广告拦截、划词翻译、网页截图,每个扩展都往每个页面注入一段JavaScript。小游戏每帧要执行上万次计算,这些额外代码会干扰游戏主循环。更隐蔽的是“硬件加速”选项。浏览器在默认设置下可能关闭了GPU加速,或者因为显卡驱动版本太旧而自动退回软件渲染,所有图像合成都用CPU算,一个1080P窗口就能把CPU占用拉到80%。另外32位浏览器只能使用4GB内存地址空间,在游戏和多个标签页同时开时,进程频繁提交内存,垃圾回收器来回扫描,触发长时间停顿,那个卡顿感就来自这里。
网络链路也逃不开。加载网页小游戏要解析域名,你的运营商DNS如果延迟高,每次访问一个子域名要几百毫秒,页面里有几十个资源请求,累计起来就是几秒。打开“空间”这种富媒体页面更明显,同时加载图片、音频、视频和无数Ajax接口,中间任何一个请求被运营商劫持或超时,页面就会一直转圈。还有一类小游戏是实时联机的,服务端会和你保持WebSocket长连接,一旦网络抖动,动作就会延迟或回滚,表现就是“动作很慢”。如果你在下载东西或者看视频,上行带宽被占满,确认包发不出,游戏就会卡住。
后台程序是经常被忽略的干扰源。杀毒软件会对浏览器生成的临时文件做实时扫描,游戏脚本每写一个缓存文件都要被查一遍,磁盘和CPU的占用率就会上去。Windows更新可能正在后台下载补丁,网盘客户端、Steam更新器也会抢带宽和磁盘读写。你只看到游戏窗口,但任务管理器里可能已经有十多个进程在争抢资源。机械硬盘这时候最容易暴露缺点,大量随机读写让硬盘长时间100%占用,鼠标都跟着卡。
开一个空间也卡,值得单独说。空间页面和以前静态页面不一样,现在会加载用户的历史动态、广告推荐、直播流、小游戏脚本,往往有几百个元素,内存消耗比普通网页大几倍。浏览器标签页不是完全独立的,一个标签占据太多CPU会让整个浏览器进程卡死。如果你用的是老版Edge或IE,单进程架构下所有标签共用资源,一个页面出问题,所有标签都遭殃。Chrome虽是多进程,但每个进程都吃内存,总内存不够时,所有页面一起变慢。

要解决,不需要马上换电脑。先把浏览器扩展能禁用就禁用,尤其是那些功能重复的;打开浏览器设置里的硬件加速,更新显卡驱动,确认浏览器是64位最新版;关闭杀毒软件的游戏模式或暂时退出;清理一下DNS缓存,把DNS改成或;有能力的把机械硬盘换成固态硬盘,内存加到8GB以上,这些改动都能明显改善卡顿。你的电脑不是不能玩,只是需要把这些隐形拖累清掉。