摘要
很多人在使用 MATLAB / Simulink 时都会遇到一个问题:MATLAB 能打开,但是点击 Simulink 后要等很久;或者打开 .slx 模型时一直卡在初始化、加载库、更新缓存等界面。其实 Simulink 打开慢不一定是电脑配置差,更多时候是杀毒软件实时扫描、路径缓存异常、启动脚本过重、模型缓存损坏、工程目录放在网盘或同步盘等原因导致的。
本文总结一套比较完整的排查方法,重点包括:关闭杀毒软件实时防护或添加白名单、刷新 MATLAB 工具箱路径缓存、清理 Simulink 缓存、检查 startup.m、检查模型回调函数、避免网络盘和同步盘路径等。MathWorks 官方文档也明确把启用工具箱路径缓存、减少启动代码、使用本地磁盘、卸载不用的产品等作为解决 MATLAB 启动慢的常见方法。(MathWorks)
目录
[二、第一步:关闭杀毒软件实时防护,或者把 MATLAB 加入白名单](#二、第一步:关闭杀毒软件实时防护,或者把 MATLAB 加入白名单)
[1. 为什么第一步要查杀毒软件?](#1. 为什么第一步要查杀毒软件?)
[2. 临时关闭杀毒软件测试](#2. 临时关闭杀毒软件测试)
[3. 更推荐的方法:添加白名单](#3. 更推荐的方法:添加白名单)
[三、第二步:刷新 MATLAB 工具箱路径缓存](#三、第二步:刷新 MATLAB 工具箱路径缓存)
[四、第三步:检查是否启用了 Toolbox Path Cache](#四、第三步:检查是否启用了 Toolbox Path Cache)
[五、第四步:检查 MATLAB 是否安装在本地 SSD](#五、第四步:检查 MATLAB 是否安装在本地 SSD)
[六、第五步:清理 Simulink 缓存文件](#六、第五步:清理 Simulink 缓存文件)
[1. 可以清理的缓存文件](#1. 可以清理的缓存文件)
[七、第六步:检查 startup.m 启动脚本](#七、第六步:检查 startup.m 启动脚本)
[九、第八步:检查 Simulink 模型回调函数](#九、第八步:检查 Simulink 模型回调函数)
[十、第九步:关闭不必要的 Add-On 和工具箱](#十、第九步:关闭不必要的 Add-On 和工具箱)
[十一、第十步:避免把工程放在 OneDrive、网盘或网络路径中](#十一、第十步:避免把工程放在 OneDrive、网盘或网络路径中)
[十三、第十二步:重置 MATLAB 用户配置目录](#十三、第十二步:重置 MATLAB 用户配置目录)
[1. 刷新工具箱路径缓存](#1. 刷新工具箱路径缓存)
[2. 关闭所有模型并清理部分类缓存](#2. 关闭所有模型并清理部分类缓存)
[3. 查找 startup.m](#3. 查找 startup.m)
[4. 恢复默认路径](#4. 恢复默认路径)
[5. 备份当前路径](#5. 备份当前路径)
一、问题现象
电脑打开 Simulink 慢,一般会出现下面几种情况:
-
MATLAB 本身启动很慢;
-
MATLAB 已经打开,但点击 Simulink 图标后长时间无响应;
-
打开
.slx模型时一直卡在加载界面; -
第一次打开特别慢,第二次打开稍微快一点;
-
Simulink Library Browser 打开慢;
-
打开模型后,命令行显示 Busy 或 Initializing;
-
CPU、磁盘占用突然升高;
-
杀毒软件提示正在扫描 MATLAB 相关文件。
这些问题通常不是单一原因造成的,所以建议按照下面的顺序逐步排查。
二、第一步:关闭杀毒软件实时防护,或者把 MATLAB 加入白名单
1. 为什么第一步要查杀毒软件?
MATLAB / Simulink 启动时会加载大量文件,包括:
cpp
.m 文件
.p 文件
.mexw64 文件
.dll 文件
工具箱目录
Simulink 库文件
模型缓存文件
临时文件
用户配置文件
如果杀毒软件开启了实时防护,就可能在 MATLAB / Simulink 启动时逐个扫描这些文件,导致启动速度明显变慢。MathWorks 社区中也有用户反馈,杀毒软件实时扫描 MATLAB 文件夹可能影响 MATLAB 启动速度,解决方法是给 MATLAB 安装目录和配置目录添加排除项。(MathWorks)
所以,电脑打开 Simulink 很慢时,第一步不是重装软件,而是先排查杀毒软件。
2. 临时关闭杀毒软件测试
可以先临时关闭杀毒软件的实时防护,然后重新启动 MATLAB / Simulink 测试速度。
以 Windows 安全中心为例:
Windows 安全中心
→ 病毒和威胁防护
→ 管理设置
→ 实时保护
→ 暂时关闭
如果你使用的是 360、火绒、电脑管家、联想电脑管家等软件,也可以临时关闭实时防护功能。
注意:这里的关闭只是为了测试问题来源,不建议长期关闭杀毒软件。
3. 更推荐的方法:添加白名单
如果关闭杀毒软件后 Simulink 明显变快,说明问题大概率出在实时扫描上。此时建议把 MATLAB 和工程目录加入白名单,而不是一直关闭杀毒软件。
建议加入白名单的目录如下:
C:\Program Files\MATLAB\R20XXx
例如:
C:\Program Files\MATLAB\R2023b
C:\Program Files\MATLAB\R2024a
如果你的工程文件放在 D 盘,也建议加入:
D:\MATLAB_Project
D:\Simulink_Project
还可以加入 MATLAB 用户配置和缓存目录:
C:\Users\用户名\AppData\Roaming\MathWorks
C:\Users\用户名\AppData\Local\Temp
这样既能保留杀毒软件防护,又能减少 MATLAB / Simulink 启动时被反复扫描。
三、第二步:刷新 MATLAB 工具箱路径缓存
如果杀毒软件排查后仍然很慢,第二步建议刷新 MATLAB 的工具箱路径缓存。
在 MATLAB 命令行输入:
rehash toolboxcache
savepath
其中:
rehash toolboxcache
用于刷新 MATLAB 的函数和文件系统路径缓存,并更新工具箱路径缓存文件。MathWorks 官方文档说明,rehash toolboxcache 等价于在 MATLAB 设置窗口中点击 Update Toolbox Path Cache 。(MathWorks)
savepath
用于保存当前路径设置。
执行完成后,关闭 MATLAB,再重新打开 MATLAB 和 Simulink 测试速度。
四、第三步:检查是否启用了 Toolbox Path Cache
MATLAB 有一个工具箱路径缓存功能,叫做 Toolbox Path Cache 。如果这个功能关闭,MATLAB 启动时可能需要重新扫描大量工具箱目录,从而导致启动变慢。MathWorks 官方文档说明,可以在 MATLAB 设置窗口中点击 Update Toolbox Path Cache 更新缓存,也可以使用 rehash toolboxcache 命令更新缓存和缓存文件。(MathWorks)
操作路径如下:
Home
→ Preferences
→ MATLAB
→ General
→ Enable toolbox path cache
→ Update Toolbox Path Cache
建议这样设置:
-
勾选 Enable toolbox path cache;
-
点击 Update Toolbox Path Cache;
-
点击 OK;
-
重启 MATLAB。
五、第四步:检查 MATLAB 是否安装在本地 SSD
如果 MATLAB 安装在机械硬盘、移动硬盘、U 盘、网络共享盘、OneDrive 同步目录中,启动速度可能会明显变慢。
MathWorks 官方解决 MATLAB 启动慢的文档中,也建议尽量从本地磁盘访问文件,而不是网络位置。(MathWorks)
推荐安装路径:
C:\Program Files\MATLAB\R20XXx
不推荐安装或运行在:
U 盘
移动硬盘
网络共享盘
OneDrive 同步目录
桌面超深层目录
包含大量中文和特殊字符的路径
如果你的电脑有 SSD,建议 MATLAB 和 Simulink 工程都放在 SSD 上。
六、第五步:清理 Simulink 缓存文件
Simulink 在仿真、模型引用、代码生成时会产生一些缓存文件。常见的有:
slprj
*.slxc
.slxc 是 Simulink 缓存文件,MathWorks 官方文档说明,在模型层级结构生成代码时,每个被引用模型可能会有对应的 .slxc 缓存文件,这些缓存文件可以减少后续仿真和代码生成所需时间。(MathWorks)
但是,如果缓存文件异常、版本切换频繁、模型路径变化较大,也可能导致打开模型变慢。
1. 可以清理的缓存文件
关闭 MATLAB 后,可以尝试删除或移动以下文件:
项目目录\slprj
项目目录\*.slxc
还可以清理临时目录:
C:\Users\用户名\AppData\Local\Temp
注意:如果你不确定能不能删除,可以先把文件夹改名备份,例如:
slprj → slprj_backup
重新打开模型后,Simulink 会自动重新生成相关缓存。
七、第六步:检查 startup.m 启动脚本
MATLAB 启动时会自动执行 startup.m 文件。如果这个文件中写了大量初始化代码,就可能导致 MATLAB 和 Simulink 打开很慢。
在 MATLAB 命令行输入:
which startup -all
如果返回了 startup.m 文件路径,说明你的 MATLAB 启动时会执行这个脚本。
常见的拖慢写法如下:
addpath(genpath('D:\All_Project'))
load('big_data.mat')
open_system('large_model.slx')
run('init_all.m')
其中最容易拖慢的是:
addpath(genpath(...))
如果 genpath 作用在一个非常大的工程目录上,MATLAB 每次启动都会扫描大量子文件夹。
建议改成只添加必要路径:
addpath('D:\MATLAB_Project\model')
addpath('D:\MATLAB_Project\scripts')
addpath('D:\MATLAB_Project\data')
如果怀疑是 startup.m 导致启动慢,可以先把文件改名:
startup.m → startup_backup.m
然后重启 MATLAB 测试速度。
MathWorks 官方启动慢排查文档中,也把减少启动时运行的用户代码作为解决启动慢的一个方向。(MathWorks)
八、第七步:恢复默认路径并重新保存
如果 MATLAB 路径被改乱,或者安装过很多第三方工具箱,可以尝试恢复默认路径。
先备份当前路径:
path_backup = path;
save('path_backup.mat','path_backup');
然后执行:
restoredefaultpath
rehash toolboxcache
savepath
三个命令的作用如下:
| 命令 | 作用 |
|---|---|
restoredefaultpath |
恢复 MATLAB 默认搜索路径 |
rehash toolboxcache |
刷新工具箱路径缓存 |
savepath |
保存当前路径设置 |
注意:这个方法会移除你自己添加过的路径,所以不要一上来就执行。建议在杀毒软件、缓存、启动脚本都排查后再使用。
九、第八步:检查 Simulink 模型回调函数
如果 MATLAB 启动速度正常,但某一个 Simulink 模型打开特别慢,那么问题可能不是 MATLAB 本身,而是模型里写了回调函数。
打开模型后,依次进入:
File
→ Model Properties
→ Callbacks
重点检查下面几个位置:
PreLoadFcn
PostLoadFcn
InitFcn
StartFcn
StopFcn
CloseFcn
如果这些回调函数中有大量代码,例如:
load('large_data.mat')
run('init_parameter.m')
addpath(genpath('D:\Big_Project'))
open_system('another_model.slx')
那么模型打开速度就会变慢。
建议把模型初始化脚本拆分,只保留必要内容。大文件数据不要在模型打开时自动加载,可以改成仿真前手动加载。
十、第九步:关闭不必要的 Add-On 和工具箱
如果 MATLAB 安装了很多第三方工具箱、支持包、Add-On 插件,也可能影响启动速度。MathWorks 官方启动慢排查文档中也提到,可以卸载不用的产品来减少启动负担。(MathWorks)
操作路径:
Home
→ Add-Ons
→ Manage Add-Ons
可以检查以下内容:
-
是否安装了不常用的第三方工具箱;
-
是否安装了多个硬件支持包;
-
是否安装了很久不用的插件;
-
是否有路径已经失效的 Add-On。
不常用的可以暂时禁用或卸载。
十一、第十步:避免把工程放在 OneDrive、网盘或网络路径中
很多人的工程文件喜欢放在桌面、OneDrive、坚果云、学校服务器、网络共享盘里。这样做虽然方便同步,但对 MATLAB / Simulink 并不友好。
不推荐路径:
C:\Users\用户名\OneDrive\桌面\Simulink_Project
\\server\share\MATLAB_Project
移动硬盘:\MATLAB_Project
推荐路径:
D:\MATLAB_Workspace
D:\Simulink_Project
E:\MATLAB_Project
尤其是 Simulink 模型中如果引用了大量库文件、数据文件、模型引用文件,放在网络路径中会明显拖慢加载速度。
十二、第十一步:检查许可证和网络连接
如果学校或公司使用的是网络许可证,MATLAB 启动时可能需要连接许可证服务器。如果网络不稳定,启动也可能变慢。
可以观察 MATLAB 启动时是否卡在 License 相关步骤。如果是校园网或实验室服务器环境,可以检查:
是否连接校园网
VPN 是否正常
许可证服务器是否可访问
网络是否延迟较高
MathWorks 官方启动慢文档中也把许可证路径异常作为可能原因之一。(MathWorks)
十三、第十二步:重置 MATLAB 用户配置目录
如果 MATLAB 用户配置目录损坏,也可能导致启动慢、界面卡顿、Simulink 初始化慢等问题。
可以关闭 MATLAB 后,找到下面路径:
C:\Users\用户名\AppData\Roaming\MathWorks\MATLAB
里面通常会有类似这样的文件夹:
R2022b
R2023a
R2023b
R2024a
可以把当前版本的文件夹改名,例如:
R2023b → R2023b_backup
然后重新打开 MATLAB,软件会自动生成新的配置目录。
注意:不要随便删除带有 license 字样的文件夹。MathWorks 社区回答中也提到过类似方法:退出 MATLAB 后重命名当前版本的设置目录,重启后 MATLAB 会重新创建该目录。(MathWorks)
十四、推荐排查顺序
建议按照下面顺序排查,不要一开始就重装 MATLAB。
1. 临时关闭杀毒软件实时防护,测试 Simulink 是否变快
2. 如果变快,把 MATLAB 安装目录和工程目录加入白名单
3. 执行 rehash toolboxcache 和 savepath
4. 检查 Enable toolbox path cache 是否开启
5. 重启 MATLAB 和 Simulink
6. 检查 MATLAB 是否安装在本地 SSD
7. 清理 slprj 和 *.slxc 缓存文件
8. 检查 startup.m 启动脚本
9. 检查模型 Callbacks 回调函数
10. 关闭不必要的 Add-On 和工具箱
11. 避免使用 OneDrive、网盘、网络共享盘
12. 检查许可证和网络连接
13. 重置 MATLAB 用户配置目录
14. 最后再考虑重装 MATLAB
十五、常用命令汇总
1. 刷新工具箱路径缓存
rehash toolboxcache
savepath
2. 关闭所有模型并清理部分类缓存
bdclose all
clear classes
clear mex
rehash toolboxcache
3. 查找 startup.m
which startup -all
4. 恢复默认路径
restoredefaultpath
rehash toolboxcache
savepath
5. 备份当前路径
path_backup = path;
save('path_backup.mat','path_backup');
十六、我个人推荐的快速处理方法
如果你只是想快速试一下,可以按照下面这套方法:
第一步,临时关闭杀毒软件实时防护,重新打开 MATLAB / Simulink 测试。
第二步,如果变快,把下面路径加入杀毒软件白名单:
C:\Program Files\MATLAB\R20XXx
D:\MATLAB_Project
C:\Users\用户名\AppData\Roaming\MathWorks
第三步,在 MATLAB 命令行执行:
rehash toolboxcache
savepath
第四步,关闭 MATLAB,重新打开 Simulink。
如果这几步之后还是慢,再继续检查 startup.m、模型回调函数、slprj 和 .slxc 缓存文件。
十七、总结
电脑打开 Simulink 很慢,第一步应该排查杀毒软件实时防护。因为 MATLAB / Simulink 启动时会加载大量工具箱、库文件、缓存文件和模型文件,杀毒软件如果逐个扫描,会明显拖慢启动速度。
如果关闭杀毒软件后速度变快,建议不要长期关闭防护,而是把 MATLAB 安装目录、工程目录和 MathWorks 配置目录加入白名单。
如果杀毒软件不是主要原因,再继续排查:
-
工具箱路径缓存;
-
Simulink 缓存文件;
-
startup.m启动脚本; -
模型回调函数;
-
网络盘或同步盘路径;
-
插件和工具箱;
-
MATLAB 用户配置目录。
最常用的修复命令是:
rehash toolboxcache
savepath
如果是模型本身打开慢,则重点检查:
slprj
*.slxc
PreLoadFcn
PostLoadFcn
InitFcn
StartFcn
按照这个顺序排查,基本可以解决大多数 MATLAB / Simulink 打开慢的问题。
参考资料
-
MathWorks 官方文档:Resolve Slow Startup - MATLAB & Simulink。(MathWorks)
-
MathWorks 官方文档:rehash - Refresh function and file system path caches。(MathWorks)
-
MathWorks 官方文档:Toolbox Path Caching in MATLAB。(MathWorks)
-
MathWorks 官方文档:Simulink Cache Files for Incremental Code Generation。(MathWorks)
-
MathWorks Community:Slow initialization due to SettingsConstructorLoadingFiles。(MathWorks)
-
MathWorks Community:Matlab startup painfully slow。(MathWorks)