Go to file
Scott Mitchell ee9233d8fa HTTP/2 Flow Controller required memory reduction
Motivation:
Currently we allocate the full amount of state for each stream as soon as the stream is created, and keep that state until the stream is GC. The full set of state is only needed when the stream can support flow controlled frames. There is an opportunity to reduce the required amount of memory, and make memory eligible for GC sooner by only allocating what is necessary for flow control stream state.

Modifications:

Introduce objects which require 'less' state for local/remote flow control stream state.
Use these new objects when streams have been created but will not transition out of idle AND when streams are no longer eligible for flow controlled frame transfer but still must persist in the priority tree.
Result:
Memory allocations are reduced to what is actually needed, and memory is made eligible for GC potentially sooner.
2015-04-22 14:40:21 -07:00
all HTTP/2 codec missing from all/pom.xml 2015-03-23 16:29:28 -07:00
buffer [#3623] CompositeByteBuf.iterator() should return optimized Iterable 2015-04-20 10:45:37 +02:00
codec fix the discardedBytes counting on LineBasedFrameDecoder 2015-04-21 09:25:47 +02:00
codec-dns [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
codec-haproxy ByteString introduced as AsciiString super class 2015-04-14 16:35:17 -07:00
codec-http Fix handling of non-auto read for ByteToMessageDecoder and SslHandler 2015-04-20 09:11:02 +02:00
codec-http2 HTTP/2 Flow Controller required memory reduction 2015-04-22 14:40:21 -07:00
codec-memcache Returns after encoding each message not do check following instance types 2015-03-19 20:43:59 +01:00
codec-mqtt [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
codec-socks Hide password in exception messages of SocksAuthRequest 2015-03-17 17:25:09 +09:00
codec-stomp ByteString introduced as AsciiString super class 2015-04-14 16:35:17 -07:00
codec-xml [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
common [#3652] Improve performance of StringUtil.simpleClassName() 2015-04-22 09:14:40 +02:00
example ByteString introduced as AsciiString super class 2015-04-14 16:35:17 -07:00
handler Fix SslContextBuilder swapping client and server 2015-04-20 17:25:14 -07:00
handler-proxy ByteString introduced as AsciiString super class 2015-04-14 16:35:17 -07:00
license Integrate non-blocking XML parser as Netty codec (#2806) 2015-02-19 13:46:14 +01:00
microbench HTTP/2 Flow Controller interface updates 2015-04-20 20:02:02 -07:00
resolver Use InetSocketAddress.getHostName() instead of getHostString() 2015-03-10 11:49:23 +09:00
resolver-dns [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
tarball [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
testsuite Correctly test for non-auto-read correctness in testsuite 2015-04-20 09:10:55 +02:00
testsuite-osgi [maven-release-plugin] prepare for next development iteration 2015-03-03 02:06:47 -05:00
transport Revert "Ensure channelReadComplete() is called only when necessary" 2015-04-20 09:10:41 +02:00
transport-native-epoll Ensure backward-compability with 4.0 2015-04-19 13:25:42 +02:00
transport-rxtx Ensure backward-compability with 4.0 2015-04-19 13:25:42 +02:00
transport-sctp Ensure backward-compability with 4.0 2015-04-19 13:25:42 +02:00
transport-udt Ensure backward-compability with 4.0 2015-04-19 13:25:42 +02: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 Integrate non-blocking XML parser as Netty codec (#2806) 2015-02-19 13:46:14 +01:00
pom.xml Add support for ALPN when using openssl + NPN client mode and support for CipherSuiteFilter 2015-04-10 18:52:34 +02:00
README.md Add a link to the 'native transports' page 2014-07-21 12:54:24 -07:00
run-example.sh HTTP/2 examples run script support 2015-03-23 16:27:55 -07: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.