От 798 до 16 нс: как оптимизация debounce привела меня в Swift Runtime
Все началось с простой идеи: перестать создавать новую Task для каждого значения. Уже это сократило среднее время вызова с 798 до 216 нс. Но мне стало интересно, куда уходят оставшиеся наносекунды. Так оптимизация debounce превратилась в исследование Swift Runtime, работы компилятора и влияния расположения блокировки в памяти. В статье расскажу, какие предположения подтвердились, что меня удивило и как в итоге удалось дойти до 16 нс на вызов.
https://habr.com/ru/articles/1099306/
#производительность #оптимизация #performance #swift #ios #debounce #generics #бенчмарки #swift_concurrency #swift_runtime