Why is EJOEs performance getting bad if i use large objects?
Versions from 0.3.2 to 0.3.4 use NIO only for connection accept/select operations by default, so that invoking of (de)serialize adapters can be done directly using blocking io streams. This can be a significantly improvement over non blocking IO. Support for partial NIO read/write was also added in version 0.3.2. Even though blocking I/O streams perform better in some enviroments with large objects, the performance differences aren’t so abundantly clear now. If you are using a prior version than 0.3.2 there is no possibility to avoid these performance issues. Take a look at this article if you want to know why usage of non-blocking I/O can cause some major drawbacks in EJOE. With 0.3.4 EJOE restarted using non-blocking I/O by default because in most scenarios non-blocking I/O does outperform the blocking mode. Usage of blocking mode can be helpful only if your are exchanging *really* large objects. To disable non blocking mode anyway use EJServer#enableNonBlockingIO(false).