0
我寫了一個應用程序連接到websocket服務器使用碼頭websocket。當使用JDK 1.8.0(64位),一切似乎正常,但當切換到JDK 1.8.0(32位),我收到以下錯誤:OutOfMemoryError:直接緩衝區內存在碼頭websocket與32位
java.lang.OutOfMemoryError: Direct buffer memory
at java.nio.Bits.reserveMemory(Bits.java:693)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)
at org.eclipse.jetty.util.BufferUtil.allocateDirect(BufferUtil.java:133)
at org.eclipse.jetty.io.ByteBufferPool.newByteBuffer(ByteBufferPool.java:61)
at org.eclipse.jetty.io.MappedByteBufferPool.acquire(MappedByteBufferPool.java:67)
at org.eclipse.jetty.websocket.common.io.FrameFlusher$Flusher.batch(FrameFlusher.java:65)
我認爲這與事實做32位無法處理請求的字節緩衝區大小。
所以最簡單的解決方案是切換到64位,但我們有很多32位系統的客戶:有沒有更簡單的解決方案?
我已經試着改變各種參數的JVM設置 但沒有什麼幫助。