То есть вы считаете, что разница между вашим подходом (запуск в песочнице vm) и обычным запуском (require модуля и вызов функции) укладывается в статистическую погрешность? Можете объяснить, почему некоторые решения при вашем методе запуска работают в несколько раз медленнее? Уверен, что мое решение не единственное такое. Интересно было бы посчитать альтернативную таблицу результатов для всех участников, прошедших тест на корректность.
Проверил, действительно, если переделать тест на использование runInThisContext вместо runInContext, начинает работать в 3 раза быстрее. Понять бы еще, что именно так тормозит в не текущем контексте
Отвечу сам себе. Дело не в битности и не в ОС, а в способе запуска тестов. Организаторы запускают через vm, для моей реализации это почему-то оказалось критично. Безхитростный запуск отрабатывает в 2.5 раза быстрее чем через tests/test.js.
Выше в комментариях писали, что набор тестовых данных будет похож на содержимое почтового ящика типичного пользователя. Означает ли это, что в большинстве писем, еcли не во всех, будет фигурировать один и тот же адрес (в качестве from либо to)?
Большое спасибо BarsMonster за конкурс. Задача оказалась интересной и многогранной, разработка решения превратилась в квест, в котором нахождение каждого артефакта приводило к улучшению результата. Я тоже сделал генератор тестов и автоматический подсчет баллов, но тесты гонял вручную, автоматизировать все до конца времени не было. Поздравляю lany с заслуженной победой.
Прогнал примитивный скрипт по 10 раз для каждого и выбрал лучшие результаты:
Кто-нибудь может погонять у себя скрипт? Интересны результаты в различных средах исполнения.