[
https://issues.apache.org/jira/browse/MATH-650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109557#comment-13109557
]
Gilles commented on MATH-650:
-----------------------------
Revision 1173690 shows the resource approach to storing data.
It is still a little slower than literal arrays, but the gap is only about 12
ms now:
{noformat}
compute ~48 ms
resources ~18 ms
array ~6 ms
{noformat}
In exchange for this (relative) slowness, the byte-code size is reduced by half
and we can have a "clean" source file. Moreover, we have a clear separation
between code and data; the latter is generated once and it would be easy to
spot unwanted modification.
I think that even the smaller tables (sine, cosine, tangent) should also be
stored in the same way.
> FastMath has static code which slows the first access to FastMath
> -----------------------------------------------------------------
>
> Key: MATH-650
> URL: https://issues.apache.org/jira/browse/MATH-650
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: Nightly Builds
> Environment: Android 2.3 (Dalvik VM with JIT)
> Reporter: Alexis Robert
> Priority: Minor
> Attachments: FastMathLoadCheck.java, LucTestPerformance.java
>
>
> Working on an Android application using Orekit, I've discovered that a simple
> FastMath.floor() takes about 4 to 5 secs on a 1GHz Nexus One phone (only the
> first time it's called). I've launched the Android profiling tool (traceview)
> and the problem seems to be linked with the static portion of FastMath code
> named "// Initialize tables"
> The timing resulted in :
> - FastMath.slowexp (40.8%)
> - FastMath.expint (39.2%)
> \- FastMath.quadmult() (95.6% of expint)
> - FastMath.slowlog (18.2%)
> Hoping that would help
> Thanks!
> Alexis Robert
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira