引子
在ubuntu 18上使用Matlab R2020b时, 如果打开了帮助浏览器, 就会导致空闲时CPU占用很高, 网上找到的一些方法不适用于我的情况.
比如, 这里和这里提到需要用下面的命令更改帮助浏览器的渲染器:
com.mathworks.mlwidgets.html.HtmlComponentFactory.setDefaultType('HTMLRENDERER');
在R2020b上尝试后发现R2020b上只支持HTMLRENDERER
这一种选项, 并无其它可能,
com.mathworks.mlwidgets.html.HtmlComponentFactory.setDefaultType('JxBrowser');
Invalid type. Please enter one of:
HTMLRENDERER - uses HTMLRenderer, using ICE browser for HTML rendering
问题原因
在进一步搜索后觉得可能是与显卡驱动有关, 使用opengl info
查看opengl信息为:
Version: '4.6.0 NVIDIA 460.91.03'
Vendor: 'NVIDIA Corporation'
Renderer: 'GeForce GTX 1080 Ti/PCIe/SSE2'
MaxTextureSize: 32768
Visual: '视觉效果 0x27,(RGBA 32 位(8 8 8 8)、Z 深度 16 位、硬件加速、双缓冲区、消除锯齿 8 次采样)'
Software: 'false'
HardwareSupportLevel: 'none (已知的图形驱动程序问题)'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 1
Extensions: {389×1 cell}
MaxFrameBufferSize: 32768
可以看到返回的结果是未使用softwareopengl, 在ubuntu中启动Matlab时使用的方法是图标启动, 在查看启动代码后发现Matlab的启动命令为:
matlab -desktop -prefresoftwareopengl
但是在linux启动选项中并没有对应的启动选项, 所以可能Matlab没有识别到正确的启动选项, 导致使用none
模式启动.
解决方法
将启动代码更改为:
matlab -desktop -softwareopengl
后启动matlab, 再次使用opengl info
查看信息如下:
Version: '2.1 Mesa 17.1.3'
Vendor: 'Brian Paul'
Renderer: 'Mesa X11'
MaxTextureSize: 16384
Visual: '视觉效果 0x23,(RGBA 32 位(8 8 8 8)、Z 深度 16 位、硬件加速、双缓冲区、消除锯齿 0 次采样)'
Software: 'true'
HardwareSupportLevel: 'none'
SupportsGraphicsSmoothing: 0
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 0
Extensions: {152×1 cell}
MaxFrameBufferSize: 16384
现在打开帮助浏览器就不会出现问题了.