当我第一次使用绘图功能(例如,plot(1,1)
)时,Octave会挂起几分钟。对相同功能的第二次和后续调用执行得非常快。下次启动Octave时会重复相同的行为。我使用Octave 4.2.1和qt graphics_toolkit和gnuplot graphics_toolkit。操作系统是Windows 7和10.我使用了标准的Octave安装程序。
如何解决这个问题?
答案 0 :(得分:2)
这个问题很常见。例如,请参阅 - Cannot use Octave 4.0.0 graphics toolkit functions或Plot doesn't work in Octave 4.0.0但我找不到任何解决此问题的方法。所以我做了自己的调查。
当Octave挂起时,我运行了着名的实用程序process-explorer,我看到Octave打开了Windows字体文件夹(c:\ Windows \ Fonts)中的所有文件。我的电脑上这个文件夹的大小约为400 MB!我搜索谷歌并发现,Octave可以使用font的缓存。有用于创建字体缓存的特殊实用程序和脚本文件(请参阅comment to bug)。因此,解决这个问题非常简单:
fc_update.bat
此脚本有两个连续启动的日志:
C:\倍频\倍频4.2.1> fc_update.bat
“更新fc-cache(可能需要一段时间)......” C:/ WINDOWS / fonts:缓存,新缓存内容:1012个字体,0个目录
C:/ WINDOWS / fonts:无法写入缓存
C:/Users/Sergey/.local/share/fonts:跳过,没有这样的目录
C:/Users/Sergey/.fonts:跳过,没有这样的目录
C:/ Users / Sergey / AppData / Local / fontconfig / cache:清理缓存目录
C:/Users/Sergey/.cache/fontconfig:不清除不存在的缓存目录
C:/Users/Sergey/.fontconfig:清理缓存目录
c:\ Octave \ Octave-4.2.1 \ bin \ fc-cache.exe:失败
“完成”。C:\倍频\倍频4.2.1> fc_update.bat
“更新fc-cache(可能需要一段时间)......” C:/ WINDOWS / fonts:跳过,现有缓存有效:1012个字体,0个dirs
C:/Users/Sergey/.local/share/fonts:跳过,没有这样的目录
C:/Users/Sergey/.fonts:跳过,没有这样的目录
C:/ Users / Sergey / AppData / Local / fontconfig / cache:清理缓存目录
C:/Users/Sergey/.cache/fontconfig:不清除不存在的缓存目录
C:/Users/Sergey/.fontconfig:清理缓存目录
c:\ Octave \ Octave-4.2.1 \ bin \ fc-cache.exe:成功
“完成”。
我认为您需要在安装Octave或向系统添加新字体时运行此脚本。我不明白为什么这些信息没有以清晰易懂的方式包含在Octave文档中。