Я подебажил немного dotnet script. Оказывается он неявно создает файл script.csproj во временной папке, и использует его для восстановления зависимостей, т.е. вызывает внутри себя dotnet restore.
Все nuget пакеты, указанные в вызываемых скриптах через директиву #r, dotnet script добавляет в этот созданный script.csproj, и они скачиваются перед первым запуском. Указание .dll напрямую экономит немного времени на сетевых запросах к nuget-репозиторию.
На моей машине это дало ~800мс прироста.
script.csproj кешируется после первого запуска, и я пытался еще сделать прогрев этого кеша через вызов make test прямо в DOCKERFILE. В теории это должно было еще сэкономить прилично времени, т.к. dotnet restore не вызывался бы вообще. Но на моей машине это наоборот замедлило запуск раза в 2. Буду разбираться
Я подебажил немного dotnet script. Оказывается он неявно создает файл script.csproj во временной папке, и использует его для восстановления зависимостей, т.е. вызывает внутри себя
dotnet restore
. Все nuget пакеты, указанные в вызываемых скриптах через директиву#r
, dotnet script добавляет в этот созданный script.csproj, и они скачиваются перед первым запуском. Указание .dll напрямую экономит немного времени на сетевых запросах к nuget-репозиторию. На моей машине это дало ~800мс прироста.script.csproj кешируется после первого запуска, и я пытался еще сделать прогрев этого кеша через вызов
make test
прямо в DOCKERFILE. В теории это должно было еще сэкономить прилично времени, т.к.dotnet restore
не вызывался бы вообще. Но на моей машине это наоборот замедлило запуск раза в 2. Буду разбираться