在 Ubuntu 14.04 上,经过几个月的流畅和快速运行后,我的 Matlab 2014a 界面最近开始真正滞后。Matlab 主窗口和代码编辑器窗口在键入和选择窗口组件时都存在持续的响应滞后。如果我键入内容,则每隔几秒钟界面就会冻结,并且我在冻结期间键入的文本会在长达一秒的冻结结束后显示出来。
我运行的是专用的 i7 3770K,32GB 内存,25GB 可用 SSD 系统磁盘空间,我以前从未遇到过这种延迟。其他程序,如 Chrome、Geany、Blender、SMPlayer、Firefox 都像往常一样运行顺畅。
我尝试查看是否有其他程序占用 Java,但找不到,当 Matlab 滞后持续存在时,CPU 使用率甚至为 0-5%。Matlab 刚启动时没有滞后,但正常使用后几个小时突然开始滞后。代码执行似乎以正常速度进行,只是界面滞后。
如果我同时运行第二个 Matlab 会话和第一个会话,并将相同的工作区和文件加载到代码编辑器中,那么第二个 Matlab 将至少在几个小时内顺利运行而不会出现延迟。
答案1
这个问题可能与 Matlab R2014a 有关。我在一台高效的笔记本电脑上遇到了类似的问题,它运行的是 Windows 7 64 位系统。当反复运行一些简单的脚本来修改参数时,Matlab 会在每 2 次或 3 次“运行”时冻结。在命令窗口中输入内容时也是如此。似乎程序每隔一分钟就会进入休眠状态。
答案2
Matlab 界面出现奇怪的延迟可能是由我之前运行的大量 .mat 加载脚本引起的。即使我重新启动 Matlab 而不在新会话中运行任何内容,界面也会在一段时间后开始延迟,但只有在运行上一个 Matlab 会话中的 .mat 加载脚本后未重新启动 PC 时才会出现这种情况。
即使重新启动 Matlab,问题仍然存在,这使得我更难发现之前的 Matlab 进程可能是导致问题的原因,因为我认为完全关闭所有 Matlab 进程也会消除运行的特定脚本的相关影响。
这个假设似乎不成立,加载 1000 个 .mat 文件似乎会导致 Matlab 出现某种效率低下的问题。我知道这不是工作区中结果变量的大小问题,因为我经常加载单个 .mat 文件和脚本,这些文件和脚本产生的变量总大小超过 20GB,但从未遇到过这种延迟。那么一定是 1000 次文件访问导致了 Matlab 中的问题。
如果我使用另一个 Matlab 2013b 安装将数千个 .mat 文件加载到单个数据结构中,那么我在 Matlab 2014a 中确实会遇到同样奇怪的滞后。但是,如果我重新启动 Matlab 2014a,而从未在 2014a 中运行 1000 个 .mat 加载,而只是在 2013b 中运行,那么 Matlab 2014a 界面之后不会滞后。
因此,我几乎将其称为 Matlab 2013/2014 中的一种错误,至少与加载数千个 .mat 文件有关。我的临时解决方案是使用 Matlab 2013b 加载文件并将它们连接成单个 .mat,然后重新启动 Matlab 2014a(如果它已打开)。