[
https://issues.apache.org/jira/browse/HTTPCORE-212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801066#action_12801066
]
Tony Poppleton edited comment on HTTPCORE-212 at 1/16/10 2:04 AM:
------------------------------------------------------------------
Actually, one last change to the Host patch, instantiating the CharArrayBuffer
with the computed length rather than 32 yields a measurable 30% performance
increase (to the method) with a hostname of "localhost".
Sebb has just comitted a patch so rather than adding another patch the single
line to change is line 172 to become:
CharArrayBuffer buffer = new CharArrayBuffer(this.hostname.length() + 6);
Also could add a comment along the lines of
//the highest port number is 65535, which is length 6 with the addition of
the colon
Thanks
was (Author: moqtada):
Actually, one last change to the Host patch, instantiating the
CharArrayBuffer with the computed length rather than 32 yields a measurable 30%
performance increase with a hostname of "localhost".
Sebb has just comitted a patch so rather than adding another patch the single
line to change is line 172 to become:
CharArrayBuffer buffer = new CharArrayBuffer(this.hostname.length() + 6);
Also could add a comment along the lines of
//the highest port number is 65535, which is length 6 with the addition of
the colon
Thanks
> Minor performance improvements
> ------------------------------
>
> Key: HTTPCORE-212
> URL: https://issues.apache.org/jira/browse/HTTPCORE-212
> Project: HttpComponents HttpCore
> Issue Type: Improvement
> Components: HttpCore
> Reporter: Tony Poppleton
> Priority: Minor
> Fix For: 4.1-beta1
>
> Attachments: BasicLineParser.java.patch, BasicLineParser.java.patch2,
> BasicLineParser.java.patch3, HttpHost.java.patch, HttpHost.java.patch2,
> HttpHost.java.patch3, HttpHostBenchmark.java
>
>
> JProfiler highlighted a few minor bottlenecks in HttpCore, and two patches
> are attached.
> Neither of these two patches has been benchmarked in a proper fashion, I just
> observed that they dropped of the JProfiler radar (which isn't a thorough way
> of doing this and may be wrong!). Could someone with a benchmarking suite
> already setup please test these patches for performance to confirm they are
> indeed faster and also if possible ascertain how much faster.
> The first patch is to remove the unnecessary creation of a CharArrayBuffer in
> HttpHost.toHostString. In cases without a port, there is no object creation
> at all now, and in cases with a port then Java string concatenation is used
> (and optimized away in recent JVMs).
> The second patch is more involved and affects BasicLineParser. Given that
> all of my responses are being processed with this class, I decided I should
> look at optimizing it. The main culprit is the string creation in
> CharArrayBuffer.substringTrimmed which is only required to be able to call
> the Java Integer.parseInt method. I normally prefer using Java classes where
> possible, however this patch implements a custom parseInt method which also
> removes the need for the indexOf operation (so the CharArrayBuffer/String is
> now only scanned once rather than twice).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]