Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java堆OutOfMemoryError_Java - Fatal编程技术网

Java堆OutOfMemoryError

Java堆OutOfMemoryError,java,Java,我正在创建一个流应用程序,当我向我的客户机流时,客户机抛出OutOfMemoryError。我的堆只有6MB大,我已经将最大堆大小增加到1GB。当我填充缓存时,它是否可能填充得太快(对于GC?)?或者可能是什么问题?有什么想法吗 它在这里崩溃(确切地说是在第一行): 这段代码执行了几千次,因为我将歌曲分成了大约1KB的数据包,并用SequenceNr排序的数据包填充树集(缓存) 我正在分析EMA上的转储,但正如我所说,堆只有6MB(我知道,即使使用memoryleak,当我超过最大堆大小(1GB

我正在创建一个流应用程序,当我向我的客户机流时,客户机抛出OutOfMemoryError。我的堆只有6MB大,我已经将最大堆大小增加到1GB。当我填充缓存时,它是否可能填充得太快(对于GC?)?或者可能是什么问题?有什么想法吗

它在这里崩溃(确切地说是在第一行):

这段代码执行了几千次,因为我将歌曲分成了大约1KB的数据包,并用SequenceNr排序的数据包填充树集(缓存)

我正在分析EMA上的转储,但正如我所说,堆只有6MB(我知道,即使使用memoryleak,当我超过最大堆大小(1GB)时,它也会崩溃)

错误

Exception in thread "Thread-5" java.lang.OutOfMemoryError: Java heap space
at utils.networking.SongDatagramBuilder.convertToSongDatagram(SongDatagramBuilder.java:108)
at controllers.networking.streaming.MusicStreamingService.listen(MusicStreamingService.java:142)
at controllers.networking.streaming.MusicStreamingService$$Lambda$59/369920468.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)space

填充缓存是什么意思?请用相关代码发布完整的stacktrace。您的代码没有意义。在创建数据包之前,您正在使用它。当错误发生时,您是否检查了实际的
长度
参数。如果当前堆为6 MB,但您尝试分配这一行,例如100 GB,这将导致OutOfMemory错误,转储仅显示6 MB。@ViswanathLekshmanan缓存基本上是一个树集。@Jack是的,您是对的,这就是问题所在。。。我希望它永远不会太大,因为它在服务器端是一个常量。但由于我使用的是自制的协议,它失败了,并在数据流上发送了一个错误的变量(一个大整数)。然后它解码错误并崩溃了。
Exception in thread "Thread-5" java.lang.OutOfMemoryError: Java heap space
at utils.networking.SongDatagramBuilder.convertToSongDatagram(SongDatagramBuilder.java:108)
at controllers.networking.streaming.MusicStreamingService.listen(MusicStreamingService.java:142)
at controllers.networking.streaming.MusicStreamingService$$Lambda$59/369920468.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)space