Как сокращение полных путей файлов в логах влияет на производительность и размер браузера

Команда Браузера показала, как сокращение полных путей в сообщениях логов до одного имени файла снижает размер ключевой библиотеки и косвенно ускоряет запуск. Проблема: строки с полными путями попадают в browser.dll (≈270 MiB), который загружается при каждом старте; это критично для пользователей без SSD (их у Браузера ≈27%). Дополнительно избыточные строки раздувают размер обновлений и трафик.

Анализ показал, что в Chromium/Браузере макросы логирования LOG и FROM_HERE автоматически вставляют путь файла. Замена в LOG с __FILE__ на __FILE_NAME__ поначалу увеличила DLL (две разные строковые константы: путь для FROM_HERE и имя для LOG). Выигрыш достигнут после перевода FROM_HERE на новый встроенный макрос компилятора __builtin_FILE_NAME(), который подставляет только имя файла в точке вызова.

  • Инфраструктура: вклад в open-source — добавление __builtin_FILE_NAME() в Clang (c релиза 17.0.1; в GCC заведён feature-request).
  • Эффект: заметное уменьшение DLL без регрессий производительности; суммарно снижает I/O при старте и объём обновлений.
  • Технические детали: FROM_HERE — аналог std::source_location::current(); ранее использовал __builtin_FILE().

Вывод: мелкие, но массовые оптимизации строковых ресурсов в логах дают материальную экономию размера бинарей и улучшают UX на слабых носителях.

Ключевые инсайты из новости (по версии ChatGPT)
  • Минимизация путей в логах для уменьшения бинарей: Полные пути файлов в строковых литералах логов попадают в бинарь и заметно раздувают ключевые DLL/SO. Замена на короткое имя файла сокращает суммарный пул строк и уменьшает размер сборок без функциональных потерь.
    [Инженерные практики]
Для получения полного доступа оформите подписку PubMag PRO.
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
Инсайты автоматически генерируются с помощью искусственного интеллекта на основе текста статьи.
← Назад в лентуЧитать оригинал →
✈️ Подписывайтесь на мой Telegram-канал — там еще больше интересного про AdTech, MarTech, AI и многое другое!