Personal tools
You are here: Home Community Blog PillarOne.RiskAnalytics: First Profiling Results

PillarOne.RiskAnalytics: First Profiling Results

Before starting to improve the performance of PillarOne.RiskAnalytics, we need to identify the run-time expensive parts. The first profiling session showed that the simulations don't have any memory leaks and the required time depends linearly on the number of iterations.
Therefore the computer's RAM and the available hardisk space to store the simulation results are the only limits. You can build and run PillarOne models as complex as the business context requires - if it weren't for the impatience of the users ;-)

We identified the following areas for performance improvement:

  • database persistence: The current way of persisting results to the database is 25% slower than writing to a file (CapitalEagle, collecting 3 key figures)
  • composed or nested components are a convenient way of structuring models. The profiling data revealed that a model with composed component ExampleLob was 40% slower than an exactly similar model without any composed components.
  • random number generator: only 30% of the simulation runtime is used for business logic calculations and 60% of this 30% is consumed by the random number generators which was very surprising to me. Selecting an accurate random number generator from the SSJ library has its price.

We started this week with a refactoring of the first two points and will publish effective runtime improvement as soon as we are done.


Technical Background

We used the commercial Yourkit profiler and the profiler of NetBeans

which is open source. Both of them allow to visually inspect number of methods calls and their duration.

 

--
Stefan Kunz

Document Actions