在工作当中我们经常会遇到查询慢呀,新增慢呀等等问题,开发环境出现这样的问题不可怕,我们可以通过debug轻松锁定慢的代码,那如果本地是好的,线上出现这样的问题我们应该如何排查?
解决思路
我们可以采取添加时间标记,让两个时间想减,然后输出日志,这样我们就可以在日志当中查看到耗时时间。
在项目当中我们可以多打几个这样的时间标记,然后就可以根据输出日志,快速锁定,慢的代码,然后本地调试优化。
以下代码为例:
package com.xjgx.service.person;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.xjgx.domain.person.PersonInfo;
import com.xjgx.dto.ResultDto;
import com.xjgx.repository.person.PersonInfoRepository;
public class TestService {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private PersonInfoRepository personInfoRepository;
public ResultDto updatePersonInfo(PersonInfo personInfo) {
long d = System.currentTimeMillis();
personInfoRepository.save(personInfo);
long c = System.currentTimeMillis();
logger.error("档案保存时间为"+((c-d)/1000)+"S");
return null;
}
}