Оптимизация лексера Dart: как архивы tar.gz ускоряют ввод-вывод

Я разработал лексер для ассемблера ARM64, который позволяет проводить лексинговые операции на Dart в два раза быстрее, чем официальный сканер. После бенчмарка на 104000 файлов я обнаружил, что узким местом оказались системные вызовы при вводе-выводе, а не сам лексер. Каждый вызов open/read/close создавал значительный оверхед, снижая производительность. При замене на 1351 архив tar.gz время ввода-вывода сократилось с 14,5 секунд до 339 миллисекунд, что обеспечило общий прирост производительности в 2,27 раза. Этот эксперимент объясняет, почему pub.dev хранит пакеты в формате tar.gz, так как это позволяет сократить количество системных вызовов, уменьшить объем данных и ускорить процесс извлечения. Важно учитывать, что для современных устройств, работающих с большим количеством мелких файлов, оптимизация ввода-вывода может значительно повлиять на общую производительность системы.

Помогите проекту, поделитесь с друзьями ;)

Добавить комментарий