(здесь разработчик V8.)
Для скорости синтаксического анализа важен общий объем сценария, а не организация в файлы.
При этом может быть вторичные эффекты, которые могут оказать большее влияние на общую воспринимаемую загрузку страницы, чем скорость необработанного анализа. Как указывает ответ Ашока, загрузка - это часть картины, где исторически многие мелкие ресурсы находились в невыгодном положении, которое, как вы указываете, должно решаться с помощью HTTP2. С другой стороны, несколько ресурсов могут получить ускорение благодаря одновременным соединениям по сравнению с одним большим портом.
Еще один эффект, который стоит рассмотреть, - это кэширование. Если у вас есть одна часть кода, которая редко изменяется (например, сторонняя библиотека, которую вы обновляете каждые несколько месяцев), и другая часть, которая сильно меняется (например, ваш собственный код, где вы развертываете новые версии через день), тогда имеет смысл разделить файлы сценариев вдоль этой строки, чтобы браузер мог кэшировать части, которые не меняются. Это по крайней мере позволит избежать загрузки части, которая не изменилась; некоторые браузеры могут даже кэшировать результаты синтаксического анализа / компиляции кода, что сэкономит еще больше работы.
Применимые практические правила:
(1) Do что имеет смысл для вашего случая (т.е. что наиболее удобно); или, по крайней мере, начните с этого и посмотрите, работает ли он достаточно хорошо. Преждевременная оптимизация (т. Е. Усложнение вещей в надежде на увеличение скорости без проверки того, действительно ли это необходимо или полезно) обычно является плохой идеей.
(2) Измерение любое сами, с тестом, максимально приближенным к вашей реальной ситуации. Например, примените реалистичное разделение c к вашим фактическим источникам (может быть, в несколько кусков? Или объедините их в один, если разделение было тем, что вы делали ранее) и протестируйте это, вместо того, чтобы генерировать тысячи файлов с фиктивным контентом. Если вы не можете измерить разницу, то нет никакой разницы, которая имеет значение! И если вы можете измерить разницу, то у вас есть ответ: -)