Benchmarks in this repository:
basic_term_benchmark
: Replicate the cashflows of the LifeLib BasicTerm model- Python LifeLib BasicTerm_M
- Julia using memoization
- Python using custom memoization decorator
- Python using JAX
exposures
: Create date partitions for experience studies- Julia ExperienceAnalysis
- R actxps
mortality
: Read SOA mortality tables and use them in a simple calculation- Julia MortalityTables
- Python Pymort
The below results are generated by the benchmarking scripts in the folders for each language. These scripts are run automatically by GitHub Actions and populate the results below.
basic_term_benchmark:
- Julia Benchmarks basic_term:
mean: TrialEstimate(247.444 ms)
result: 1.4489630534602132e7
- Python jax basic_term_m:
mean: 234.77891559999904 milliseconds
result: 14489630.534632105
Python lifelib basic_term_m:
mean: 723.1984076999993 milliseconds
result: 14489630.534629744
Python scratch basic_term_m:
mean: 605.9050307999996 milliseconds
result: 14489630.53463211
exposures:
- Julia ExperienceAnalysis.jl:
mean: TrialEstimate(51.550 ms)
num_rows: 141281
- R actxps:
mean: 782.499587 ms
num_rows: 141281
mortality:
- Julia MortalityTables.jl:
mean: TrialEstimate(624.846 μs)
result: 1904.4865526636793
- Python PyMort:
mean: 1637.1809795499998 milliseconds
result: 1904.4865526636793