Все началось с простой идеи: перестать создавать новую Task для каждого значения. Уже это сократило среднее время вызова с 798 до 216 нс. Но мне стало интересно, куда уходят оставшиеся наносекунды. Так оптимизация debounce превратилась в исследование Swift Runtime, работы компилятора и влияния…