Go to file
Matthias Einwag 43681b5608 Avoid vectored writes for small websocket messages
Motivation:
The WebSocket08FrameEncoder contains an optimization path for small messages which copies the message content into the header buffer to avoid vectored writes. However this path is in the current implementation never taken because the target buffer is preallocated only for exactly the size of the header.

Modification:
For messages below a certain treshold allocate the buffer so that the message can be directly copied. Thereby the optimized path is taken.

Result:
A speedup of about 25% for 100byte messages. Declines with bigger message sizes. I have currently set the treshold to 1kB which is a point where I could still see a few percent speedup, but we should also avoid burning too many CPU cycles.
2014-10-12 20:12:07 +02:00
all [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
buffer Disable caching of PooledByteBuf for different threads. 2014-09-22 13:39:31 +02:00
codec Fixed typo in LzmaFrameEncoder constructor 2014-09-19 20:09:39 +02:00
codec-dns [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
codec-http Avoid vectored writes for small websocket messages 2014-10-12 20:12:07 +02:00
codec-memcache [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
codec-socks codec-socks test cleanup 2014-08-20 06:53:37 +02:00
codec-stomp [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
common Don't ignore maxCapacity if it's not a power of 2 2014-08-31 09:06:45 +02:00
example [#2939] Fix SslContext usage in the examples for client side 2014-09-26 20:59:06 +02:00
handler Change the operator order of TrafficCounter to calculate the throughput to get the correct result 2014-10-01 06:37:36 +02:00
license Implemented LZMA frame encoder 2014-09-15 15:05:36 +02:00
microbench [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
testsuite Fix buffer leak in DatagramUnicastTest caused by incorrect usage of CompositeByteBuf 2014-09-10 11:42:26 +02:00
transport [#2586] Use correct EventExecutor to notify for bind failures on late registration 2014-08-20 16:34:57 +02:00
transport-native-epoll [#2926] Fix 1 byte memory leak in native transport 2014-09-22 15:11:53 +02:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
transport-udt [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:36:54 +09:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Implemented LZMA frame encoder 2014-09-15 15:05:36 +02:00
pom.xml Implemented LZMA frame encoder 2014-09-15 15:05:36 +02:00
README.md Add a link to the 'native transports' page 2014-07-21 12:54:24 -07:00
run-example.sh Overall refactoring of the STOMP codec 2014-06-04 17:09:42 +09:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

The 'master' branch is where the development of the latest major version lives on. The development of all other versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.