С 2010 года я занимаюсь разработкой под iOS и имею опыт работы в геймдеве и мессенджерах. В настоящее время я являюсь кросс-функциональным архитектором, активно использую Swift и Go, и понимаю проблемы масштабируемости крупных мобильных проектов. Telegram, с его 2.1 миллиона строк кода и 700 модулями, является одним из самых сложных мессенджеров, но сталкивается с серьезными проблемами производительности из-за использования объектно-ориентированног программирования (ООП).
86% кода написаны на Swift, однако разработчики продолжают использовать ООП, что приводит к значительным потерям производительности. Переход на Protocol Oriented Programming (POP) мог бы снизить нагрузку на процессор на 10-25%, уменьшить количество крашей и повысить фреймрейт.
Некоторые проблемы ООП в Swift включают высокие затраты на виртуальные таблицы, сложности с передачей ссылок и необходимость в лишних аллокациях. Рефакторинг кода с использованием POP и структур вместо классов, а также оптимизация протоколов могут значительно улучшить производительность Telegram, увеличив автономность устройств на 10-20% и снижающую активность ARC. Swift может достигать почти C-образной производительности при правильном подходе к архитектуре.
