码迷,mamicode.com
首页 > 其他好文 > 详细

for循环、并行流、串行流效率比较

时间:2020-03-01 20:03:06      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:内存   spring   bin   size   ++   bind   效率比较   string   void   

User类
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
int id;
String name;
int sex;
int age;

}

测试类
import org.springframework.web.bind.annotation.RestController;


import java.time.LocalDateTime;
import java.time.temporal.TemporalField;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@RestController
public class TestController {

public static void main(String[] args) {
List<User> userList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
int sex = 0;
if ((i & 1) == 1) {
sex = 1;
}
User user = User.builder().id(i).name("刘-" + i).sex(sex).age(i).build();
userList.add(user);
}
System.out.println("=====数据总量:" + userList.size());

long beginTime = System.currentTimeMillis();
int sumAge1 = 0;
for (User user : userList) {
sumAge1 += user.getAge();
}
long endTime = System.currentTimeMillis();
System.out.println("=====增强for循环所用时间 " + (endTime - beginTime) + " 毫秒" + " ,计算结果" + sumAge1);

beginTime = System.currentTimeMillis();
int sumAge2 = userList.stream().collect(Collectors.summingInt(User::getAge));
endTime = System.currentTimeMillis();
System.out.println("=====顺序流所用时间 " + (endTime - beginTime) + " 毫秒, 计算结果" + sumAge2);


beginTime = System.currentTimeMillis();
int sumAge = userList.parallelStream().mapToInt(User::getAge).sum();
endTime = System.currentTimeMillis();
System.out.println("=====并行流所用时间 " + (endTime - beginTime) + " 毫秒, 计算结果" + sumAge);


}

}

测试结果:

技术图片

 

 

技术图片

 

 

技术图片

 

 

技术图片

 

 

技术图片

 

 

技术图片

 

 

技术图片

 

 

技术图片

 

技术图片

 

 

一千五百万的时候并行流最快

 

到20000000就内存溢出了。

所以通常的处理逻辑for循环性能更优。

 

 

 

 

技术图片

 

for循环、并行流、串行流效率比较

标签:内存   spring   bin   size   ++   bind   效率比较   string   void   

原文地址:https://www.cnblogs.com/lalalazar/p/12391393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!