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.