matlab gui加速,性能 – MATLAB:GUI逐渐变慢

我发现围绕这个问题的最好的方法是在上面暗示:强制垃圾收集.虽然在MATLAB中无法识别命令forceGarbageCollection,但是建议很好.你想要的命令是

java.lang.System.gc()……这样的野兽.

我正在开展一个项目,其中我正在以40Hz(使用计时器)和一个1000Hz的NIDAQ(使用startBackground())读取2个串行端口并实时绘制它们. MATLAB的并行处理限制确保其中一个过程在任何给定时间都会导致缓冲器阻塞.动画无法跟上,最终冻结等等.我通过确保定义单个绘图并且仅使用set命令更新动画循环内部更改的参数,获得了一些初步成功. (例如图,子图(311),轴([…]),保持,p1 =图(x1,y1,’erasemode’,’xor’,…);等等 – > tic,while(toc< 8)set(p1,'xdata',x1,'ydata',y1)...... 使用set将使您的动画更快,更流畅.但是,如果您在后台进行过多的动画制作,那么您仍会遇到缓冲墙 – 尤其是实时数据输入.垃圾收集是你的答案.它不是瞬时的,所以你不希望它执行每个循环周期,除非你的循环非常长.我的解决方案是在while循环之外设置一个计数器变量,并使用一个mod函数,使它只执行每个’n’个循环(例如counter = 0; while()… counter; if(~mod(counter, n))java.lang.System.gc();依此类推. 这将节省你(并希望其他人)大量的时间和头痛,相信我,你将有MATLAB执行实时数据acq和动画与LabVIEW相提并论.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值