ByteBuffer.allocate()和ByteBuffer.allocateDirect()
|
问题是“ 0”还是“ 1”。
几年以来,我一直坚持认为,由于ѭ2是操作系统级别的直接内存映射,因此它的执行get / put调用的速度比ѭ3更快。到目前为止,我从来没有真正对找到有关该情况的确切细节感兴趣。我想知道ѭ4的两种类型中哪种更快,在什么条件下。
没有找到相关结果
已邀请:
4 个回复
寒健
宠封钞轰
昧伎
。 使用get / put调用可以更快地执行 结论并非来自前提。前提是假的;结论也是错误的。一旦进入JNI层,它们将更快,并且如果您从同一“ 2”进行读写,它们将更快,因为数据根本不需要越过JNI边界。
贡炮逗握惫
缓冲区发送数据所花费的时间比
变体(经测试将文件复制到/ dev / null)要少25%到75%,具体取决于大小,但是分配本身可能会明显变慢(甚至是100倍)。 资料来源: 为什么ByteBuffer.allocate()和ByteBuffer.allocateDirect()之间的奇异性能曲线差异 ByteBuffer.allocateDirect太慢了 何时使用数组,缓冲区或直接缓冲区