You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mark Hindess (JIRA)" <ji...@apache.org> on 2010/09/22 00:38:34 UTC

[jira] Commented: (HARMONY-6635) FloatingPointParser uses toLowerCase unnecessarily

    [ https://issues.apache.org/jira/browse/HARMONY-6635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12913293#action_12913293 ] 

Mark Hindess commented on HARMONY-6635:
---------------------------------------

Tim,

I imagine if your benchmark used a more typical selection of random floats - i.e. very few if any hex floats rather than only hex flows - then the times would be significantly better for the charAt version.  Obviously with 0x floats both find the 0x quickly but in long floats with no 0x the charAt should be a clear win since it only has to check the first 2-3 chars not the whole string.


> FloatingPointParser uses toLowerCase unnecessarily
> --------------------------------------------------
>
>                 Key: HARMONY-6635
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6635
>             Project: Harmony
>          Issue Type: Improvement
>         Environment: Android 2.2
>            Reporter: Gaz Davidson
>         Attachments: harmony-6635.patch
>
>
> A lot of time is being eaten inside FloatingPointParser.java calling String.toLowerCase when testing for "hex float" types.
> > if (s.toLowerCase().indexOf("0x") != -1) 
> I imagine that such hex float numbers are very rare, so this is a huge waste of time in the general case.
> I haven't tested this, but it looks to me like the string is already trimmed and so checking at a specific location should speed this up considerably:
> > if (s.size() > 2 && s.charAt(0) =='0' && (s.charAt(1) == 'x' || s.charAt(1) == 'X')) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.