go获取mongo数据再导出excel文件的效率问题
先看图吧...
82.5w条数据处理结束得2周,这时间还在增加...
CPU是i59400,16G DDR4 2666,数据库是局域网内的服务器,从数据库上读数据花不了啥时间,存的很慢...
应该是哪里 IO 耗时过大了,不要循环太多次,先试试 100 次,打时间戳统计各个步骤耗时:
import time
print(time.time_ns())
调试出具体耗时长的语句。
有做过耗时检测的调试,最后结果可以说是随着运行时间的增加耗时增长,也确实刚开始运行的时候数据处理速度还是比较快,眨眼可见的进度。
但是到现在为止运行了快30个小时了,从资源占用的情况来看,并没有爆内存,因数据体量的区别稳定占用在1-2G,cpu也只占用了30%左右。
我好像意识到了个问题
func Save2Excel(sheetName string, v interface{}, lineNum int) (r error) {
err := excelFile.SetSheetRow(sheetName, "A"+strconv.Itoa(lineNum+1), v)
excelFile.Save()
if err != nil {
fmt.Println(v)
}
return err
}
excelFile.Save()
好家伙我这是每存一行数据就保存了一次...IO该不会卡在这里了吧