Performance#

At this time, we have focused mostly on implementing functionality into the astropy-healpix package, performance is not as good in most cases as the healpy library. Once the API is stable, we will focus on improving performance.

Benchmark#

To get an idea of how the performance of the two packages compare, we have included some simple benchmarks that compare the healpy-compatible interface of astropy-healpix with healpy itself. These benchmarks are run with:

$ python -m astropy_healpix.bench
Running benchmarks...

  fct    nest nside   size  time_healpy time_self   ratio
------- ----- ----- ------- ----------- ---------- -------
pix2ang  True     1      10   0.0000081  0.0003575   43.91
pix2ang  True   128      10   0.0000082  0.0003471   42.52
pix2ang  True     1    1000   0.0000399  0.0004751   11.92
pix2ang  True   128    1000   0.0000345  0.0004575   13.28
pix2ang  True     1 1000000   0.0434032  0.1589150    3.66
pix2ang  True   128 1000000   0.0364285  0.1383810    3.80
pix2ang False     1      10   0.0000080  0.0004040   50.30
pix2ang False   128      10   0.0000082  0.0003322   40.63
pix2ang False     1    1000   0.0000400  0.0005005   12.50
pix2ang False   128    1000   0.0000548  0.0005045    9.21
pix2ang False     1 1000000   0.0342841  0.1429310    4.17
pix2ang False   128 1000000   0.0478645  0.1405270    2.94

For small arrays, pix2ang in astropy-healpix performs worse, but in both caes the times are less than a millisecond, and such differences may therefore not matter. For larger arrays, the difference is a factor of a few at most. We will add more benchmarks over time to provide a more complete picture.