【YOU学吧】NC报表导出文件卡死看过来,效率提升蹭蹭蹭!--第101期--报表节点根据需求查询出大量数据后,可通过报表导出功能导出为excel、csv、pdf格式文件,以方便企业对数据的留存、查看、分析。报表导出功能方便企业线下查看数据,但在报表导出过程中可能会遇到报表导出效率慢或者卡死白屏等现象,导致报表导出使用困难。报表导出文件效率慢、卡死问题分析思路系统环境NC6系列/NCCloud问题描述NC6系列/NCCloud报表在NC端查询出数据后,企业可根据需要,使用报表导出数据功能将报表数据导出留存查看(下文以导出excel格式文件为例),但在操作过程中,可能会遇到导出文件时,系统卡住、白屏或者导出耗时严重的问题。问题分析及解决方案报表导出功能是将前端报表加载完成的数据直接导出到本地电脑中使用,一般不涉及后台数据加载,可以通过nmc性能监控查看验证报表导出过程中的线程。报表导出效率慢的原因一般是报表查询数据量较大,或者报表格式中列数较多,导致报表加载的数据较多,影响报表导出使用效率。报表导出问题一般有两种现象,一种是报表导出耗时严重,最终是可以导出报表的,这类可以录制spr日志查看一下,具体哪里耗时严重;另一种是报表经过长时间仍不能导出文件,系统卡死,无法录制出spr,这个时候需要借助java分析工具进行监控分析(例如:jvisualvm)。第一种:可以直接录制spr查看,查看具体耗时位置。例:根据上图可以查看到耗时严重的是客户端位置,报表查询数据后导出过程一般是前端操作,比较消耗cpu和客户端内存,通过spr可知客户端耗时严重,猜测可能是Uclient的最大内存不足造成,因此建议先将Uclient的应用内存调整大一些使用,根据电脑配置酌情分配,建议最少分配2048M。调整之后保存数据,重新登陆系统后导出excel文件,导出效率提高。第二种:无法录制spr的环境,可以使用java监控分析工具进行分析:打开jvisualvm后根据pid找到对应的进程然后进行分析:【监视】页签中可以查看导出过程中的实时消耗,一般可通过堆内存发现Uclient内存不足的信息。如果内存使用率不高,但是导出excel文件仍旧很卡,可以通过线程页签查看当前线程信息,以便定位问题。通过线程信息再具体定位当前操作卡在什么位置,根据代码类具体分析,一般可能会有报表格式设计问题,如:报表勾选了自动调整行高功能,设置了较多的单元公式,报表格式设计中设置了冻结等。如果代码类现场无法分析,可将监控到的线程信息copy出来设置为附件,通过iSMCloud提交问题等待处理。【本文作者】张家媛NC技术支持工程师