On 21/06/2016 15:52, Afaf Zahkya wrote: > Hello, > > I m using tomcat 8.0.21. > > I want to send *up* to 4 MB of text messages through a websocket connection > to my tomcat server. I set the MaxTextMessageBufferSize to 4 MB.Now as a > result, every time I open a websocket connection and I send a message , I > can see that 4 MB are being allocated in memory for the CharBuffer > messageBufferText regardless of the size of the message I send . 99 % of my > messages would be way smaller.The 4 MB remain allocated in the > messageBufferText CharBuffer even after the message is handled. The > connection can stay open up to 30 minutes in my case, and each websocket > connection is taking 4 MB of memory all of that time even if it's inactive > which leads my server to eventually run out of memory even with inactive > connections . Note that I m using a Whole Message Handler. > > in WSFrameBase.java why not set the messageBufferText CharBuffer size to > the payload length if it doesn't exceed the maxTextMessageBufferSize, and > then clearing that buffer ( reducing its size) after the message is handled > by the Handler, so that inactive connections don't take up memory. ( same > for the binary) ?
GC churn. > Any other / better suggestions on how to solve that problem ? If you want scalability and the ability to handle messages that vary significantly in size use a partial message handler. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org