Improve http performance?
Jiming Liu
jimingliu at gmail.com
Mon Mar 29 05:47:02 EDT 2010
Hi Tee,
I tried to test the performance of Netty(3.2alpha3) and Tomcat, and
dispointedly found that Netty is not much faster than tomcat as I expected.
The result is here,
http://jiming.javaeye.com/blog/618026
Today, I profiled the netty example by JProfiler and found that it is
possible to improve the performance.
following is partial result of JProfiler, wish could be useful.
StackTrace of havest method one:
37.7% - 37,486 ms - 10,001 inv.
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream
37.7% - 37,435 ms - 10,001 inv.
org.jboss.netty.example.http.snoop.HttpRequestHandler.messageReceived
36.8% - 36,538 ms - 10,001 inv.
org.jboss.netty.example.http.snoop.HttpRequestHandler.writeResponse
20.4% - 20,253 ms - 10,001 inv.
org.jboss.netty.channel.AbstractChannel.write
20.3% - 20,198 ms - 10,001 inv. org.jboss.netty.channel.Channels.write
20.3% - 20,156 ms - 10,001 inv. org.jboss.netty.channel.Channels.write
19.9% - 19,733 ms - 10,001 inv.
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream
19.7% - 19,546 ms - 10,001 inv.
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream
19.6% - 19,453 ms - 10,001 inv.
org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream
11.7% - 11,595 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageEncoder.encode
3.7% - 3,667 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpResponseEncoder.encodeInitialLine
3.4% - 3,337 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageEncoder.encodeHeaders
2.3% - 2,311 ms - 10,001 inv.
org.jboss.netty.buffer.ChannelBuffers.wrappedBuffer
0.7% - 738 ms - 20,002 inv.
org.jboss.netty.buffer.DynamicChannelBuffer.writeByte
0.7% - 662 ms - 10,001 inv.
org.jboss.netty.buffer.ChannelBuffers.dynamicBuffer
0.3% - 273 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpCodecUtil.isTransferEncodingChunked
7.6% - 7,560 ms - 10,001 inv. org.jboss.netty.channel.Channels.write
12.1% - 11,971 ms - 10,001 inv.
org.jboss.netty.channel.DefaultChannelFuture.addListener
1.7% - 1,665 ms - 10,001 inv.
org.jboss.netty.buffer.ChannelBuffers.copiedBuffer
0.7% - 662 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.DefaultHttpMessage.setHeader
0.6% - 557 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.DefaultHttpMessage.setContent
0.5% - 506 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpHeaders.isKeepAlive
0.4% - 349 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.DefaultHttpMessage.getHeader
0.3% - 257 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.DefaultHttpResponse.<init>
StackTrace of havest method two:
34.9% - 34,613 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode
34.8% - 34,562 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode
26.0% - 25,807 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders
21.2% - 21,087 ms - 40,004 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeader
19.2% - 19,087 ms - 770,077 inv.
org.jboss.netty.handler.codec.replay.ReplayingDecoderBuffer.readByte
8.8% - 8,718 ms - 770,077 inv.
org.jboss.netty.buffer.AbstractChannelBuffer.readByte
5.4% - 5,318 ms - 770,077 inv.
org.jboss.netty.buffer.DynamicChannelBuffer.getByte
1.8% - 1,797 ms - 770,077 inv.
org.jboss.netty.buffer.HeapChannelBuffer.getByte
5.1% - 5,102 ms - 770,077 inv.
org.jboss.netty.handler.codec.replay.ReplayingDecoderBuffer.checkReadableBytes
2.0% - 1,991 ms - 30,003 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.splitHeader
1.6% - 1,569 ms - 30,003 inv.
org.jboss.netty.handler.codec.http.DefaultHttpMessage.addHeader
0.3% - 343 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpHeaders.getContentLength
0.3% - 293 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.DefaultHttpMessage.isChunked
4.4% - 4,378 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.readLine
0.9% - 885 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.splitInitialLine
0.8% - 796 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpRequestDecoder.createMessage
0.7% - 738 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.skipControlCharacters
0.7% - 696 ms - 30,003 inv.
org.jboss.netty.handler.codec.replay.ReplayingDecoder.checkpoint(java.lang.Enum)
0.4% - 417 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpMessageDecoder.reset
0.3% - 286 ms - 10,001 inv.
org.jboss.netty.handler.codec.http.HttpHeaders.getContentLength
谢谢
刘继明
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/netty-users/attachments/20100329/d9879388/attachment-0001.html
More information about the netty-users
mailing list