java - 内存不足 java 堆大小

标签 java sockets nio

http://www.coderpanda.com/java-socket-programming-transferring-large-sized-files-through-socket/

以上链接中的代码有效,但最多可以传输一定数量的数据。当我尝试传输大小约为 334 MB 的 .mkv 格式的电影时,出现“内存不足,Java 堆大小”错误。我是初学者,我不知道如何解决这个问题,我试图增加客户端程序中的缓冲区大小,但问题仍然存在。请帮助我。

最佳答案

问题是这一行:

byte[] readBuffer = new byte[1024 * 100000];

那是分配一个大约 100 MB 的缓冲区……大得离谱。

要么减少它(10 倍或 100 倍),要么使用更大的堆运行您的应用程序。

(@Aaron Digulla 和@Holger 上面的评论也很恰当。这真的不是所谓的“高质量”代码......)

关于java - 内存不足 java 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425414/

相关文章:

java - Relativise引入冗余上行目录 ".."

java.nio.file.NoSuchFileException : why nio not creating file

c++ - 使用 C++ 测量跨网络的 2 个应用程序之间的数据传输速率(带宽),如何获得无偏见和准确的结果?

python - 在套接字传输中接收额外字节

java - Netty 的 ChannelBuffer.read 出现奇怪的 indexOutOfBound 错误?

java - 如何创建其中包含 map 的查询字符串? ( java )

sockets - 套接字是应用程序通过 Internet 进行通信的唯一方式吗?

java - IText5 - 每页都有不同的页脚

java - 在 JSP 中显示 BufferedReader

java - 具有多个 artifactID 的 Maven