Java线程池优化for循环

Java线程池优化for循环,第1张

循环没啥优化的,只能尽量减少循环次数

for 循环的赋值

for(var i=0,max=arraylength;i<max;i++){
//max 直接赋值,下次可以直接使用
}

2如果有取到值,则 break 

for(var i=0,max=arraylength;i<max;i++){
       if( expression ){//符合条件
           break;
       }
}

其他的暂时就没有了,只能说尽可能的减少循环次数,尽可能的减少内存开销;

建议利用并行计算,速度至少提高1/3,只需要for循环中各次迭代之间无数据传递关系。做法简单:
只需要将你程序中的for更改为parfor即可,但前面需要加入如下指令:
matlabpool open
记得别忘记了程序最后添加:
matlabpool close
具体更改与不更改之间运算速度对比示例如下:
clc;
clear;
tic
for i=1:1000
c(:,i) = eig(rand(100));
end
display('Single CPU:')
toc
% use PCT
clear
matlabpool open local 2
tic
parfor i=1:1000
c(:,i) = eig(rand(100));
end
display('Double Core:')
toc
matlabpool close


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13345755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存