可以扩展通过 allocateDirect 方法创建的 ByteBuffer 吗?
Posted
技术标签:
【中文标题】可以扩展通过 allocateDirect 方法创建的 ByteBuffer 吗?【英文标题】:It is possible to expand a ByteBuffer created through the allocateDirect method? 【发布时间】:2020-01-28 13:31:20 【问题描述】:有没有办法在堆外 ByteBuffer 创建后增加分配的内存?
【问题讨论】:
【参考方案1】:也可以通过将文件的区域直接映射到内存来创建直接字节缓冲区。 Java 平台的实现 可以选择支持从本机代码通过 JNI 创建直接字节缓冲区。如果其中一种缓冲区的实例引用了不可访问的内存区域,则访问该区域的尝试不会更改缓冲区的内容,并且会在访问时或稍后引发未指定的异常时间。
API 没有规定,但可能有一个 JVM 通过 JNI 允许它。 我会说不。
【讨论】:
以上是关于可以扩展通过 allocateDirect 方法创建的 ByteBuffer 吗?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 ByteBuffer.allocate() 和 ByteBuffer.allocateDirect() 之间的奇怪性能曲线差异