多开吃内存是必然的,每个环境实例都要独立渲染。问题是吃多少算正常,以及怎么在不降效率的前提下压下来。
经验值是每个环境额外占 500–800 MB。8 GB 内存稳开 5–8 个,16 GB 开到 12 个左右。
超过这个数量的症状是:切换环境卡顿两秒以上、消息发送延迟、偶尔闪退。出现这些先降数量,别急着加内存条。
如果业务确实需要更多账号,建议分散到多台机器,而不是一台硬开。
一是关掉不用的环境。很多人开十个环境但实际只在用三个,其余七个挂着空转。不用的环境退出,内存立刻回来。
二是限制每个环境的缓存大小。客户端设置里有缓存上限,默认偏大,调到 200 MB 左右对日常使用没影响。
确认虚拟内存没被关掉。Windows 默认开启,但有些优化软件会关闭它,导致物理内存不够时直接崩溃而不是变慢。
把客户端目录加进杀毒软件的排除列表。实时扫描会让每次读文件都变慢,多开时被放大好几倍。
每天重启一次客户端。长时间运行会有句柄泄漏,表现是越用越慢,重启能释放。
| 内存 | 建议开数 | 超过之后的症状 |
|---|---|---|
| 8 GB | 5–8 个 | 切换卡顿、发送延迟 |
| 16 GB | 10–12 个 | 偶发闪退 |
| 32 GB | 20 个以上 | 硬盘 IO 成为新瓶颈 |
理论上 20 个以上,但实际瓶颈会转到磁盘 IO 和 CPU。建议先加到 16G 观察再决定。
看 CPU 核心数和磁盘类型。机械硬盘在多个环境同时写缓存时会明显拖慢。
可以手动关闭。程序本身不做自动回收,闲置环境不会自己退出。