我有一个Java应用程序,它会导致Java堆大小内存错误。我的应用程序是将文件转换为.csv格式并将其加载到DB中。当文件内容较少时,我的应用程序运行良好。但是,当我有成千上万的记录时,我正在获得堆大小的内存。使用InputStream,OutputStream,BufferedWriter等类时,会发生内存泄漏的所有可能性,请帮我解决此堆大小内存错误。我坚持了一个星期。下面给出的是我得到的堆大小错误
线程“main”中的异常java.lang.OutOfMemoryError:Java堆空间
答案 0 :(得分:4)
因此,您将整个文件读入内存,然后将其刷新到DB。
而不是这样做,你需要将文件块读入内存并将它们刷新到DB中。
如果没有代码,就无法给出更详细的答案。
答案 1 :(得分:1)
运行文件时,需要在命令行中添加-Xmx ##。
java -Xmx4G
会为你提供一个4 Gb可用的JVM。
编辑:如果可能的话,你应该像@Oleg一样加载一个位。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以增加堆大小。
如果你可以分享你的代码,我可以告诉你如何降低资源利用率