java循环是不是很占cpu 还是我代码有问题

oJinFeng123 2015-08-22 06:57:12
一个嵌套循环代码
for(i=1;i<=10000;i++)
{
......
for(j=1;i=2000;j++)
......



}

这样的循环,运行一个可以正常运行,代码是为了获取一万条公式,每条计算不同的数据两千组,来得到一些运算结果插入数据库。过程中有几十个静态变量,运算比较复杂。占用cpu 40左右。大概十几个小时运行完毕。
同时间运行两个的话cpu就百分之95以上了。。。。
是代码问题。还是我的循环比较大占用的本身多?有什么好办法可以一次运行几个,把循环一次的时间缩短吗?
...全文
342 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_30589105 2015-08-22
  • 打赏
  • 举报
回复
代码内层死循环
X元素 2015-08-22
  • 打赏
  • 举报
回复
根据不同的逻辑,开启多条线程来处理,速度上快很多,
ITjavaman 2015-08-22
  • 打赏
  • 举报
回复
你这是插入数据库?不是循环问题,而是插入数据库花的时间问题,我估计你是一条一条插入数据库的 你可以优化一下插入方式 我这边有个例子你看一下: con.setAutoCommit(false); // 设置手动提交 String sql = "insert into more1(numb,random,randomint)values(?,?,?)"; PreparedStatement psts = con.prepareStatement(sql); Random R= new Random(); for(int i=0;i<100000;i++){ psts.setInt(1, i); psts.setDouble(2, Math.random()); psts.setInt(3, R.nextInt(1000)); psts.addBatch(); // 加入批量处理 } psts.executeBatch(); // 执行批量处理 con.commit(); // 提交 //关闭数据库
日知己所无 2015-08-22
  • 打赏
  • 举报
回复
除了直接操作内存,一般速度比较慢的文件访问,外部设备访问,数据库访问,网络访问 思路大体一样就是,减少读取次数,充分发挥数据库等自身的性能 比如SQL语句不能一条一条执行,而是要一下子试图取回来大量的数据,然后再在内存里详细的处理 根据数据量自己调整、平衡吧

50,706

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧