Как сокращение полных путей файлов в логах влияет на производительность и размер браузера
Команда Яндекс Браузера показала, как сокращение полных путей в сообщениях логов до одного имени файла снижает размер ключевой библиотеки и косвенно ускоряет запуск. Проблема: строки с полными путями попадают в 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 на слабых носителях.
Читайте также
ML на Мосбирже: почему мой «грааль» не работает
Создание максимально стабильной автоматизированной торговой системы: от бэктеста до реального бота
Тестовый стенд с автономным ИИ-агентом QA для тестирования бэкенда: концепция и пример
Лучшие практики работы с агентами для написания кода
Агентные системы для продакшена
- Минимизация путей в логах для уменьшения бинарей: Полные пути файлов в строковых литералах логов попадают в бинарь и заметно раздувают ключевые DLL/SO. Замена на короткое имя файла сокращает суммарный пул строк и уменьшает размер сборок без функциональных потерь.
[Инженерные практики]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться