Java OutOfMemoryError Direct Buffer Memory – Java 147

Java OutOfMemoryError Direct Buffer Memory,當使用 NIO 的時候經常需要使用 ByteBuffer 來讀取或寫入數據,這是一種基於 Channel (通道) 和 Buffer (緩衝區)的 I/O 方式,它可以使用 Native 函數庫直接分配堆外內存,然後通過一個存儲在 Java 堆裡面的 DirectByteBuffer 對像作為這塊內存的引用進行操作,這樣在一些場景就避免了 Java 堆和 Native 中來回複製數據,所以性能會有所提高, Java 允許應用程序通過 Direct ByteBuffer 直接訪問堆外內存,許多高性能程序通過 Direct ByteBuffer 結合內存映射文件(Memory Mapped File)實現高速 IO。

Continue ReadingJava OutOfMemoryError Direct Buffer Memory – Java 147