jmert / AssociatedLegendrePolynomials.jl

A library for calculating the Associated Legendre polynomials
https://jmert.github.io/AssociatedLegendrePolynomials.jl/
MIT License
20 stars 2 forks source link

Add a simple benchmarking script #11

Closed jmert closed 4 years ago

jmert commented 4 years ago

This adds a simple benchmarking script which can be used to inform whether changes being made are improving or regressing performance.

Nothing is automatic, but it's a start (see also #10). The results are simply printed to the screen. For example, the current state is summarized as:

BENCHMARKS

LegendreNormCoeff{LegendreSphereNorm,Float64}

Name Trial
("outdim0", "indim0") TrialEstimate(3.025 μs)
("outdim0", "indim1") TrialEstimate(46.849 μs)
("outdim0", "indim2") TrialEstimate(46.878 μs)
("outdim0", "inscalar") TrialEstimate(2.164 μs)
("outdim1", "indim0") TrialEstimate(5.149 μs)
("outdim1", "indim1") TrialEstimate(79.140 μs)
("outdim1", "indim2") TrialEstimate(79.280 μs)
("outdim1", "inscalar") TrialEstimate(4.508 μs)
("outdim2", "indim0") TrialEstimate(2.145 ms)
("outdim2", "indim1") TrialEstimate(34.455 ms)
("outdim2", "indim2") TrialEstimate(35.347 ms)
("outdim2", "inscalar") TrialEstimate(2.274 ms)

LegendreNormCoeff{LegendreUnitNorm,Float64}

Name Trial
("outdim0", "indim0") TrialEstimate(3.045 μs)
("outdim0", "indim1") TrialEstimate(44.724 μs)
("outdim0", "indim2") TrialEstimate(44.795 μs)
("outdim0", "inscalar") TrialEstimate(2.144 μs)
("outdim1", "indim0") TrialEstimate(5.159 μs)
("outdim1", "indim1") TrialEstimate(77.146 μs)
("outdim1", "indim2") TrialEstimate(76.945 μs)
("outdim1", "inscalar") TrialEstimate(4.518 μs)
("outdim2", "indim0") TrialEstimate(2.141 ms)
("outdim2", "indim1") TrialEstimate(34.466 ms)
("outdim2", "indim2") TrialEstimate(35.293 ms)
("outdim2", "inscalar") TrialEstimate(2.779 ms)

LegendreSphereNorm

Name Trial
("outdim0", "indim0") TrialEstimate(4.388 μs)
("outdim0", "indim1") TrialEstimate(51.197 μs)
("outdim0", "indim2") TrialEstimate(48.772 μs)
("outdim0", "inscalar") TrialEstimate(3.446 μs)
("outdim1", "indim0") TrialEstimate(7.194 μs)
("outdim1", "indim1") TrialEstimate(81.013 μs)
("outdim1", "indim2") TrialEstimate(81.224 μs)
("outdim1", "inscalar") TrialEstimate(6.612 μs)
("outdim2", "indim0") TrialEstimate(2.952 ms)
("outdim2", "indim1") TrialEstimate(36.225 ms)
("outdim2", "indim2") TrialEstimate(36.091 ms)
("outdim2", "inscalar") TrialEstimate(3.070 ms)

LegendreUnitNorm

Name Trial
("outdim0", "indim0") TrialEstimate(2.945 μs)
("outdim0", "indim1") TrialEstimate(44.695 μs)
("outdim0", "indim2") TrialEstimate(44.935 μs)
("outdim0", "inscalar") TrialEstimate(2.124 μs)
("outdim1", "indim0") TrialEstimate(5.019 μs)
("outdim1", "indim1") TrialEstimate(77.817 μs)
("outdim1", "indim2") TrialEstimate(80.412 μs)
("outdim1", "inscalar") TrialEstimate(4.618 μs)
("outdim2", "indim0") TrialEstimate(2.172 ms)
("outdim2", "indim1") TrialEstimate(35.362 ms)
("outdim2", "indim2") TrialEstimate(34.558 ms)
("outdim2", "inscalar") TrialEstimate(2.295 ms)

ASSERTIONS

LegendreNormCoeff{LegendreSphereNorm,Float64}

Name Trial
("outdim0", "inscalar vs indim0") TrialJudgement(-28.46% => improvement)
("outdim1", "inscalar vs indim0") TrialJudgement(-12.45% => improvement)
("outdim2", "inscalar vs indim0") TrialJudgement(+5.99% => regression)

LegendreNormCoeff{LegendreUnitNorm,Float64}

Name Trial
("outdim0", "inscalar vs indim0") TrialJudgement(-29.59% => improvement)
("outdim1", "inscalar vs indim0") TrialJudgement(-12.42% => improvement)
("outdim2", "inscalar vs indim0") TrialJudgement(+29.81% => regression)

LegendreSphereNorm

Name Trial
("outdim0", "inscalar vs indim0") TrialJudgement(-21.47% => improvement)
("outdim1", "inscalar vs indim0") TrialJudgement(-8.09% => improvement)
("outdim2", "inscalar vs indim0") TrialJudgement(+4.02% => invariant)

LegendreUnitNorm

Name Trial
("outdim0", "inscalar vs indim0") TrialJudgement(-27.88% => improvement)
("outdim1", "inscalar vs indim0") TrialJudgement(-7.99% => improvement)
("outdim2", "inscalar vs indim0") TrialJudgement(+5.64% => regression)
codecov[bot] commented 4 years ago

Codecov Report

Merging #11 into master will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master      #11   +/-   ##
=======================================
  Coverage   97.68%   97.68%           
=======================================
  Files           9        9           
  Lines         259      259           
=======================================
  Hits          253      253           
  Misses          6        6           

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 2e40acb...ddb9945. Read the comment docs.