Java 代码性能优化

为了能提高代码的运行效率,需要在代码中注意以下实现逻辑

1、减少IO操作

常见的IO操作有:

  • 数据库操作
  • 接口请求
  • IO流

举例说明

反例:

# 拼接查询
for(User user: users){
    UserGrade grade = userGradeDao.selectById(user.getId());
    user.setGrade(grade.getGrade());
}

# 循环插入
for(Long id:ids){
    User user = new User();
    user.setId(id);
    user.setName("Name");
    userDao.insert(user);
}

正例:

# 优先构造条件,一次查询所有结果在内存中组装
Map userMap = new HashMap();
List ids = new ArrayList();
for(User user: users){
    userMap.put(user.getId(), user);
    ids.add(user.getId());
}
List grades = userGradeDao.selectByIds(ids);
if (CollectionUtils.isNotEmpty(grades){
    for(UserGrade grade: grades){
        User user = userMap.get(grade.getUserId());
        if (user != null) user.setGrade(grade.getGrade());
    }
}

# 批量插入
List users = new ArrayList(ids.size());
for(Long id:ids){
    User user = new User();
    user.setId(id);
    user.setName("Name");
    users.add(user);
}
userDao.insertBatch(users);

2、减少循环

循环是代码中必不可少的业务处理, 然后也是影响业务处理最常见的性能问题
3个size为100 的list 嵌套循环代码需要执行1,000,000次,如果每次20毫秒,系统可能直接崩溃
所有尽量减少循环嵌套,特别是未知size或者大size的循环

你可能感兴趣的:(Java 代码性能优化)