具有低GC负载的快速CSV解析器

问题描述

| 有人知道快速的CSV解析器对GC的影响很小吗?例如,SuperCsv创建了太多的对象(字符串),而GC对此并不满意。 谢谢。     

解决方法

        我建议您使用固定长度的char []来读取文件中的内容,而不是创建字符串,每次说10K个字符。根据一行中最可能的最大字符来确定char []的大小。然后遍历char []并查找逗号。找到逗号后,立即将位置保存在int []中。因此,int [0]表示第一个逗号位置,int [1]表示第二个逗号,依此类推。对每行重复使用int []。 这样,您永远不会为每一行声明任何变量。因此,没有GC开销。您需要做的就是使用存储在int []中的位置从大char []中读取每个字段的值,并从中获取意义。     ,        看一看https://github.com/titorenko/quick-csv-streamer,它创建最少的垃圾。 免责声明:我是这个图书馆的作者。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...