我正在开展一个项目,我需要逐个处理视频并运行我的算法从中提取分数。问题是视频需要花费太多时间来处理。我尝试在几个地方使用parfor并行化代码,但性能仍然很差。如何改善性能?有缓存帧的方法吗?我正在阅读每一帧并进行处理。 欢迎提出任何建议。
答案 0 :(得分:1)
缓存肯定是一种选择,但它可能没有帮助。如果你不知道什么是慢的话,加速代码是非常困难的。使用Matlab's profiler找到慢速部件,然后加速加速这些部件。之后,再次查看您的更改会产生什么影响。
以下是使用探查器的基本方法:
profile on
% call your function here
profile off
profile report
答案 1 :(得分:1)
首先,你确定你的代码支持并行,你运行了matlabpool来打开CPU并行计算
第二,也许您需要优化代码
第三,你可以尝试GPU并行计算