You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Tony Poppleton (JIRA)" <ji...@apache.org> on 2010/01/15 01:20:54 UTC

[jira] Updated: (HTTPCORE-212) Minor performance improvements

     [ https://issues.apache.org/jira/browse/HTTPCORE-212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tony Poppleton updated HTTPCORE-212:
------------------------------------

    Attachment: BasicLineParser.java.patch
                HttpHost.java.patch

Note that the patches contain other changes to make variables final where possible.  This was done automatically by Eclipse, and can be removed if desired.  However I see no harm in them, other than they affect more of the code than intended by the patch.

> 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
>         Attachments: BasicLineParser.java.patch, HttpHost.java.patch
>
>
> 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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org