java Spring批处理中的平面文件项读取器如何工作

0dxa2lsx  于 2023-02-20  发布在  Java
关注(0)|答案(1)|浏览(101)

我有一个大小为2Gb的csv文件,我正在使用spring batch读取csv文件(使用flatfile项目读取器),之后我们正在处理数据并将数据写入Kafka。我们在读取器部分使用的块大小为200。问题是我们遇到内存不足错误据我所知,在处理200个块记录后,它应该释放内存,但为什么我遇到内存不足问题
我们尝试调试,但未发现问题

z9smfwbn

z9smfwbn1#

FlatFileItemReader不会将整个文件加载到内存中,而是逐块地从文件中传输数据。
在处理完每个区块后,应将项目进行垃圾回收。如果您遇到内存不足错误,这意味着在区块处理后,某些内容保留了对这些项目的引用,或者您没有为应用分配足够的内存,无法在内存中加载单个区块(在这种情况下,您应增加内存或减小区块大小)。

相关问题