为什么 MATLAB 在“正在初始化”或“​正忙”状态停留或者花​费很长时间才能启动?

584 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 5 Feb 2014
MATLAB 打开后,但是长时间停留在“正在初始化”或“正忙”的状态。在有或没有远程许可证管理器(License Manager)的情况下,MATLAB 都花费很长时间才能启动。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 22 Mar 2023
Edited: MathWorks Support Team on 22 Mar 2023
有多种原因会导致MATLAB一直停留在 “ 正在初始化 ” 的状态。本文将提供以下信息:
  • 这是许可证问题吗?
  • 许可证问题的解决方案
  • 非许可证问题的解决方案
如果您安装了R2011a版软件,并且计算机的核为32个,或者更多,请查看以下 Bug 报告:https://www.mathworks.com/support/bugreports/732450
1. 这是许可证问题吗?
要确定缓慢启动是否是许可问题,请尝试使用 “ -c ” 启动标志启动MATLAB。请打开命令提示符/终端窗口,输入MATLAB 可执行文件的路径,“ -c ”标志,最后输入已知可使用的许可证文件的路径。请参见以下示例:
 Windows:
"$MATLAB\bin\win64\MATLAB.exe" -c <full_path_to_license_file or port@host>
请尝试以下步骤:
=======
Windows
=======
1)右击 MATLAB 的快捷方式并选择“属性”。
2)在 “ 目标 ” 字段中,输入以下内容:
"$MATLAB\bin\win32\MATLAB.exe"  -c  "<包括文件名的 MATLAB 许可证文件的完整路径>“
其中 $MATLAB 是 MATLAB 根目录,<MATLAB 许可证文件的路径> 是您的许可证文件的绝对路径。如果您不确定此文件位于何处,请参阅下面链接的相关解决方案:“MATLAB 的许可证文件位于何处?”
3)点击“确定”。
4)从快捷方式启动 MATLAB。
 
Linux or Mac:
./matlab -c <full_path_to_license_file or port@host>
注意:
如果没有创建符号链接,请从$MATLAB/bin/运行。其中$MATLAB是MATLAB安装根目录。
如果这解决了问题,那么许可证问题就是根本原因。如果这不能解决问题,请向下滚动查看“非许可证原因”。
2. 许可证(License)问题:
2.1 确定有问题的环境变量
许可证搜索路径的错误条目可能会导致许可证问题,例如不可解析的主机名,最常见的是在名为 LM_license_FILE 或 MLM_license_FILE 的环境变量中。
这些变量告诉 MATLAB 和其他 FlexNet 应用程序在哪里可以找到许可证文件。有关环境变量及其设置方式的更多信息,请参阅以下文章:What are the LM_LICENSE_FILE and MLM_LICENSE_FILE environment variables and how do I set or check for them?
或者尝试以下步骤:
 
=======
Windows
=======
1)右击“我的电脑”,然后选择“属性”。(有可能需要在控制面板中双击“系统”)。
2)选择“高级”标签,点击“环境变量”。
3)在窗口下方的系统变量中,查找变量 LM_LICENSE_FILE。
4)如果有 LM_LICENSE_FILE 变量存在,请看第5步。如果没有,请创建一个 LM_LICENSE_FILE 变量:点击“新建”,然后在变量名框中输入 LM_LICENSE_FILE。
5)把 LM_LICENSE_FILE 的值设为 MATLAB 许可证文件的绝对路径。如果你不知道许可证文件的路径,请参考相关的解决方案:“MATLAB 的许可证文件位于何处?” 。如果有多个许可证文件,在第一个路径后加上分号(;),然后在写第二个路径。点击“确认”保存。
6)重新启动 MATLAB。
=================
Linux、Unix 或 Mac 
=================
1)确认是否设有环境变量。环境变量的设置取决于你使用的 shell 版本。可以查看 home 文件夹,这些文件可能包含 .cshrc(c-shell),.profile(bash)或者 .bashrc(bash)。
2)你也可以在命令行中用 export 或者 setenv (取决于你使用的 shell )来设置环境变量,但是以上文件需要做永久修改。
比如:
export MLM_LICENSE_FILE /usr/bin/matlab/license.dat
MATLAB在尝试与其他设定的计算机或许可证服务器进行通信时可能会经历长时间的延迟。指定的可以与之通信的许可证服务器没有运行许可证管理服务也可能导致此问题。
此外,如果您借用了许可证,然后离开了借用许可证的网络,MATLAB启动也可能会延迟。
2.1 确定有问题的许可证文件或环境变量
一旦 MATLAB 启动成功在命令行窗口运行许可证签出测试,以确定哪个许可证文件有问题。以下命令将列出已找到的许可证路径以及尝试签出所花费的时间:matlab.internal.licensing.pathTest(This will test MATLAB’s current license search pathmatlab.internal.licensing.pathTest(pathToTest)(This will test a specific license search path)请注意,尽管 MATLAB 成功从 Individual 许可证中签出,但是提示信息为 “路径上不存在MATLAB功能” 。网络许可证不会提供此错误提示。
对于 R2017a 之前的版本,需要进行一些尝试和错误,以确定导致延迟的确切许可证文件或环境变量。请运行以下命令以查看MATLAB用于查找许可证文件的整个搜索路径:feature lmsearchpath
确定搜索路径中的所有许可证文件后,请尝试删除可疑的错误许可证条目(例如网络许可证)。
2.2  删除有问题的许可证文件或与本地IT部门合作解决网络问题
应删除指向不再访问的网络位置的任何许可证文件或环境变量。
如果许可证指向可访问的网络位置,但会延迟启动,请与您当地的 IT 部门合作,确定问题的来源。在许多情况下,安全软件或限制性IT策略可能是主要原因。
 
3.  非许可证问题:
 
===== 解决方案 1 =====
 
通过执行下列操作来重建 MATLAB 预设:
 
==========
Windows 
==========
(首先确保您已允许查看隐藏文件和文件夹)
1) 退出 MATLAB。确保 MATLAB 不再运行。
2)浏览到文件夹 C:\Documents and Settings\ <your username>\Application Data\MathWorks\MATLAB\ 或 c:\users\<username>\AppData\Roaming
3)重命名您使用的 MATLAB 版本目录,以 _old 结尾。如果有名称中包含“_licenses”的文件夹,不要重命名该文件夹。
4)在删除了此目录之后,重新启动 MATLAB。下次您启动 MATLAB 时会重新创建此目录。
 
如果这没有解决问题,则可以考虑 Windows 上的 MATLAB 7.0 (R14) 和某些显卡提供的图形库之间存在的一个已知问题,这些显卡没有高效使用内存,因而使 MATLAB 7.0 (R14) 比预期更频繁地使用虚拟内存。在这种情况下,禁用显卡卡的硬件图形加速功能可以提高 MATLAB 7.0 (R14) 的性能。为此,请执行下列步骤。
 
1)关闭 MATLAB。
2)右击 Windows 桌面并选择“属性”。
3)在打开的“显示属性”窗口中,选择“设置”选项卡,然后点击“高级”按钮。
4)在打开的窗口中,选择“疑难解答”选项卡。
5)将“硬件加速”滑动条一直向左设置为“无”。
6)点击此窗口中的“确定”,然后再次点击“显示属性”窗口中的“确定”。
7)重新启动 MATLAB。
 
=================
Linux、Unix 或 Mac 
=================
1)退出 MATLAB。确保 MATLAB 不再运行。
2)转到用户主目录中的“.matlab/”目录。重命名您使用的 MATLAB 版本目录,以 _old 结尾。如果有名称中包含“_licenses”的文件夹,不要重命名该文件夹
3)重新启动 MATLAB。
 
===== 解决方案 2 =====
 
在一些情况下,客户报告在后台运行的防病毒程序会降低 MATLAB 的速度。对于这些客户,禁止防病毒软件扫描 MATLAB 目录可以大大提高性能。
 
===== 解决方案 3 =====
 
如果您安装 MATLAB R2007a,则有一个bug 会阻止 MATLAB 启动。有关该 bug 的详细信息,请参阅下面的 bug 报告:http://www.mathworks.com/support/bugreports/details.html?rp=366601
===== 解决方案 4 =====
 
在一些情况下,如果在保存文件时将无效字符置于文件名中,则可能会出现此问题。
不过,文件名中存在的一些无效字符(例如 / 和 \)不会影响 MATLAB,而其他字符则会(<、>、"、|、:)。
 
例如,以下命令可以成功执行:
>> uiputfile({'*.*','All Files (*.*)'}, 'Save As',fullfile(pwd,'a 1/20'))
但以下命令会使 MATLAB 保持忙碌状态:
 
>> uiputfile({'*.*','All Files (*.*)'}, 'Save As',fullfile(pwd,'a 1<20'))
 
===== 解决方案 5 =====
MATLAB可能试图从一个缓慢的网络访问文件。检查 “ path ” 的输出以确保所有目录都是本地的。删除所有网络驱动器以查看是否有任何改进。 
===== 解决方案 6 =====
在一些罕见的情况下,MATLAB 中的首选项设置可能会对启动性能产生负面影响。以下步骤确保将工具箱缓存设置设置回默认值:
 
  1. 在 MATLAB 工具栏中,单击 “ Home ”,然后单击 “ Preferences ” 按钮。
  2. 在 “ Preferences” 窗口中,选择左侧的 “ MATLAB -> General ”。
  3. 在右侧,确认 “ Enable toolbox path cache ” 已启用。
另一个可能对启动性能产生负面影响的偏好是源代码控制集成。如果不使用任何形式的源代码管理集成,请尝试禁用此设置。
 
  1. 在 MATLAB 工具栏中,单击 “ Home ”,然后单击 “ Preferences ” 按钮。
  2. 在“首选项”窗口中,在左侧选择 “ MATLAB -> General -> Source Control ”。
  3. 选择右侧的 “ None ”,然后应用更改。
===== 解决方案 7 =====
如果上述解决方案都不能解决问题,则“timing”标志可以用作诊断工具,帮助确定哪个进程需要长时间才能初始化。为此,您可以通过导航到bin目录,从命令提示符或终端运行MATLAB,如下所示:
cd $MATLAB\R20XXx\bin
其中$MATLAB是MATLAB根目录
接下来执行以下命令:
matlab -timing
这将启动 MATLAB 并自动记录每个启动任务所花费的时间。启动完成后,您将看到 MATLAB 命令窗口中输出的日志,其中总结了计时结果。
请注意,这还将创建一个文本日志文件,该文件记录在输出的顶部。
===== 解决方案 8 =====
如果您的操作系统(如Windows、Linux或MacOS)最近已更新,请确保更新已成功安装并完成需要安装的任何其他更新。
如果这些解决方案都没有解决您的性能问题,或者特定功能存在问题,请与技术支持联系以获取帮助。https://www.mathworks.com/support/contact_us.html

More Answers (0)

Categories

Find more on 启动和关闭 in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!