Трассировка лучей по статье (без отражения)
- Чистый python: ~8 секунд\кадр
- Numba: от 12 сек, до 16 - смотря, что оборачивать, если код оптимизировать - 0.65 сек, первый запуск ~2.8. При этом сами рассчеты занимают ~0.09 сек (в многопоточном режиме неожиданно больше)
- Cython: ~ 6 сек (почти неоптимизированная)
Взять написать в питоновском стиле, а потом применить numba/cython - не получится. Чтобы написать быстрый код, нужно:
- для cython - писать как на
C- тогда не проще писать ли сразу на компилируемых языках? - для numba - нужно избегать всех питоновских объектов, что сказывается на читабельности кода