葡萄种子 发表于 2023-9-1 19:23:03

分页渲染使用内存比较多,速度比较慢

本帖最后由 Joestar.Xu 于 2024-2-23 17:29 编辑

产品:GcExcel
版本:V6.1.4
问题编号:DOCXLS-8825
last review: 2024-2-22
在V7.0.3中测试,未能重现该问题。

6万条数据,执行分页渲染,结果比较耗内存,大概要7个G,而且要等比较久,有没有什么优化的建议,或者是需要手动释放资源吗?
public class DemoCsvDatasourcePageMem3 {
    public static void main(String[] args) throws IOException {
      int repeat = 30;
      for (int i=0;i<repeat;++i){
            run();
      }
      System.out.println("OK");
    }
    public static void run() throws IOException {
      long start = System.currentTimeMillis();
      String index = "27";
      String rootPath = "";
      Workbook workbook = new Workbook();
      String templateFile = rootPath+index+".template.xlsx";
      workbook.open(templateFile);
      System.out.println("open template cost: "+(System.currentTimeMillis() - start)/1000.0);
      String dataFile0 = rootPath+index+".ds0.json.txt";
      JsonDataSource datasource0 = new JsonDataSource(new String(Files.readAllBytes(Paths.get(dataFile0)), StandardCharsets.UTF_8));
      System.out.println("open data source cost: "+(System.currentTimeMillis() - start)/1000.0);
      workbook.addDataSource("ds0", datasource0);
      System.out.println("add data source cost: "+(System.currentTimeMillis() - start)/1000.0);
      boolean setPage = true;
      if(setPage){
            workbook.getNames().add("TemplateOptions.PaginationMode", "true");
            for (IWorksheet worksheet : workbook.getWorksheets()) {
                worksheet.getPageSetup().setPaperSize(PaperSize.A2);
                worksheet.getPageSetup().setOrientation(PageOrientation.Landscape);
                worksheet.getPageSetup().setFitToPagesWide(1);
                worksheet.getPageSetup().setIsPercentScale(false);
            }
      }
      workbook.processTemplate();
      System.out.println("process template cost: "+(System.currentTimeMillis() - start)/1000.0);
      String json = workbook.toJson();
      System.out.println("final cost: "+(System.currentTimeMillis() - start)/1000.0);
    }
}






Joestar.Xu 发表于 2023-9-4 17:58:25

本帖最后由 Clark.Pan 于 2023-10-19 13:28 编辑

您好,问题已复现,这边调研一下,后续有进展的话我会在本帖中回复您。

本帖先做保留处理,问题编号 DOCXLS-8825

Clark.Pan 发表于 2023-10-19 13:26:25

您好,更新一下最新的进展:
在GcExcel V7.0版本我们会对整个模板功能进行重构,该问题有望在重构后的模板中得到优化。
请您耐心等待。

Joestar.Xu 发表于 2024-2-22 15:09:55

您好,V7.0版本已经在Maven上更新,您可以测试一下看看是否还存在该问题。
页: [1]
查看完整版本: 分页渲染使用内存比较多,速度比较慢