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