MappedByteBuffer
可能就是您要寻找的。
不过,令我惊讶的是,要花费如此多的RAM来读取内存中的文件。您是否构建了ByteArrayOutputStream
具有适当容量的?如果没有,则流可以在40 MB快要用完时分配一个新的字节数组,这意味着,例如,您将拥有39MB的完整缓冲区和两倍大小的新缓冲区。而如果流具有适当的容量,则不会有任何重新分配(更快),也不会浪费内存。
Java:高效内存的ByteArrayOutputStream
MappedByteBuffer
可能就是您要寻找的。
不过,令我惊讶的是,要花费如此多的RAM来读取内存中的文件。您是否构建了ByteArrayOutputStream
具有适当容量的?如果没有,则流可以在40 MB快要用完时分配一个新的字节数组,这意味着,例如,您将拥有39MB的完整缓冲区和两倍大小的新缓冲区。而如果流具有适当的容量,则不会有任何重新分配(更快),也不会浪费内存。