January update (старею)



1. Мой (первый) стажёр из Яндекса опубликовал Perforator — сборщик профилей и перформанса на всём кластере. После 7 лет Сергей уже оч сильный инженер, конечно



https://github.com/yandex/perforator



https://habr.com/ru/companies/yandex/articles/875070/



В Гугле мы занимаемся именно этим (GWP), так что потихоньку мои ученики меня превосходят, а я старею.



Почитайте, хорошо всё сделано, но у меня, конечно, конфликт интересов :)



2. Закончил писать контест от телеграма по оптимизации валидации TON блоков. Суть была в том, чтобы надо было заооптимизировать код Коли Дурова, который они с командой написали в 2018-2019(?). Там около 40к строк кода, попросили заооптимизировать валидацию блоков, это где-то 10к строк кода. Читал я это дело несколько дней, но мультипоточные идеи там не супер хороши, потому что блоки валидировать надо последовательно и только лишь небольшие куски можно положить на потоки



Ну вообще всё было неплохо написано, и TON действительно неплохо сделан. Я нашёл 30% ускорения в среднем на одном ядре в целом по достаточно несложным ошибкам — что показывает что даже если у вас звёздная команда, нужен жёсткий тулинг, который ловит много проблем.



Может, я мало наооптимизировал и уже старею, ну результаты покажут. Я кайфанул, остальное становится менее важно.



3. Очень понравилась статья от Ашота про CPU порты и как можно ускорить сложение через инструкции fma (multiply add, когда multiply = 1.0), которые находятся на других портах на самых современных процессорах. Прекрасная идея! Сложно её обобщить, но знать о ней стоит :)



https://ashvardanian.com/posts/cpu-ports/