在工作过程中遇到这样一个需求场景,统计查询耗时,由于生产环境没法用来测试,只能从之前的日志信息中获取分析,
日志文件中输出了大量的日志信息。
解决思路是先找到查询的开始点和结束点,然后计算查询耗时。
用到的模块:
re, datetime
注意要使用datetime来计算耗时,datetime要比time强大,可以精确到微秒级别
读文件:
with open("D:\\imglog\\20180408\\serverlog.txt","r") as f: for line in f: match1 = re.match(p1,line) if match1: imageid = match1.group('imageId') dstr = match1.group('date') imglist.append(imageid) imgdict[imageid] = dstr #print(match1.group('date')) #print(match1.group('imageId')) match2 = re.match(p2,line) if match2: imageid = match2.group('imageId') if imageid in imglist: d1 = imgdict[imageid] d2 = match2.group('date') print(imgdict[imageid]+' - '+match2.group('date')) sum = sum + dateCompare(d1,d2)/1000 count = count + 1
计算时差:
def dateCompare(d1,d2): dd1 = datetime.datetime.strptime(d1,"%Y/%m/%d %H:%M:%S.%f") dd2 = datetime.datetime.strptime(d2,"%Y/%m/%d %H:%M:%S.%f") return (dd2-dd1).microseconds