J'ai écrit une application qui se connecte à un serveur websocket en utilisant jetty websocket. Lorsque vous utilisez JDK 1.8.0 (64 bits) tout semble bien, mais lors du passage à 1.8.0 JDK (32 bits) Je reçois l'erreur suivante:OutOfMemoryError: mémoire tampon directe dans jetty websocket avec 32 bits
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)
Je pense qu'il a à voir avec le fait que 32 bits ne peut pas gérer la taille de tampon d'octet demandée.
Donc la solution la plus simple serait de passer en 64 bits mais nous avons beaucoup de clients avec des systèmes 32 bits: y a-t-il une solution plus facile?
J'ai déjà essayé de changer les paramètres de la JVM avec divers paramètres mais rien n'a aidé.