When my server gets more clients and respectivelly more data transfer, the CPU is getting high. I made stack dump using "jstack" and here is the log for the problematic thread (I'm using the latest code):
"WebsocketSelector17" prio=10 tid=0x00007f532c0fa000 nid=0x523a runnable [0x00007f5322ad0000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollCtl(Native Method)
at sun.nio.ch.EPollArrayWrapper.updateRegistrations(EPollArrayWrapper.java:246)
- locked <0x000000078b5c06d8> (a java.util.LinkedList)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:209)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x000000078b5c0600> (a sun.nio.ch.Util$2)
- locked <0x000000078b5c05f0> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000078b5bbea8> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
at org.java_websocket.server.WebSocketServer.run(WebSocketServer.java:298)
at java.lang.Thread.run(Thread.java:662)
When my server gets more clients and respectivelly more data transfer, the CPU is getting high. I made stack dump using "jstack" and here is the log for the problematic thread (I'm using the latest code):
"WebsocketSelector17" prio=10 tid=0x00007f532c0fa000 nid=0x523a runnable [0x00007f5322ad0000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollCtl(Native Method)
at sun.nio.ch.EPollArrayWrapper.updateRegistrations(EPollArrayWrapper.java:246)
- locked <0x000000078b5c06d8> (a java.util.LinkedList)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:209)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x000000078b5c0600> (a sun.nio.ch.Util$2)
- locked <0x000000078b5c05f0> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000078b5bbea8> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
at org.java_websocket.server.WebSocketServer.run(WebSocketServer.java:298)
at java.lang.Thread.run(Thread.java:662)