[ https://issues.apache.org/jira/browse/MATH-650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099597#comment-13099597 ]
Sebb commented on MATH-650: --------------------------- Yes, I looked at IODH. Turns out that the holder is not required. Instead, one can use a static class which contains the initial data: {code} public class FastMath{ private static class lnMant { private static final double LN_MANT[][] = { ... }; ... double d = lnMant.LN_MANT[j][j]; // was double d = LN_MANT[i][j]; } } {code} Very simple to implement; doing that plus commenting out all init code and data results in speed-up of about 6 times for FastMath.max(). Does not seem to affect performance of method calls once its table(s) has/ve been loaded. What remains to be decided is what to do with the init code. Some of it might be useful in its own right - Taylor expansions for sine/cosine etc. Perhaps create another class (SlowMath anyone?) in the same package. And/or move it to the test tree? > 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 > > 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