【发布时间】:2019-03-17 02:25:36
【问题描述】:
从 java 1.4 开始引入了直接内存。新的 I/O (NIO) 类引入了一种基于通道和缓冲区执行 I/O 的新方法。 NIO 增加了对直接 ByteBuffers 的支持,它可以直接传递到本机内存而不是 Java 堆。在某些情况下使它们显着加快,因为它们可以避免在 Java 堆和本机堆之间复制数据。
我一直不明白我们为什么要使用直接记忆。谁能帮忙举个例子?
【问题讨论】:
-
为了性能?
-
我的一个例子是,当您需要将顶点数据传递给 GPU 时,它们非常适合与 LWJGL、IIRC 一起使用,您将其存储在直接缓冲区中,这样您就可以轻松地管道输入数据而无需从类中解码。
-
“在某些情况下明显更快”还不够合理吗?