Веб-API ASP.NET Core 3.0 с минимальными затратами
Я хочу создать веб-API ASP.NET Core 3.0 с минимальными затратами с точки зрения опубликованного размера и потребления оперативной памяти. Потребление ЦП не кажется большой проблемой, а количество вызовов в моем случае использования очень мало.
В качестве теста я попробовал пустой шаблон ASP.NET Core. Затем я применил следующие флаги в своемcsproj
файл:
<PublishTrimmed>true</PublishTrimmed>
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
Это дает мне исполняемый файл размером ~46 МБ, и когда я запускаю его из cmd
Я нашел новый процесс, который потребляет ~19 МБ.
Мой вопрос: в ASP.NET 2.X был этот метапакет AspNetCore.App
это включало все, что обычно нужно. Но для моей встроенной системы это обычно немного грубо. Теперь, в версии 3.0, я не вижу ни одного метапакета, указанного в.csproj
ни каких-либо индивидуальных пакетов. Есть ли еще способ точно контролировать , на какие пакеты ссылаются, а на какие нет?
Учитывая PublishTrimmed
option: Имеет ли смысл заботиться о том, на какие пакеты вообще ссылаются? Или все-таки убирают все, что не используется?
Обновить
Чтобы было понятнее, встроенная система будет запускать дистрибутив Linux на основе Yocto, некоторые коды на основе C для связи с базовым измерительным оборудованием и веб-API ASP.NET для связи с внешним миром, ничего больше! После выпуска LTS-версии ASP.NET Core 3.1 наша система может быть отправлена клиентам и проработает 5-10 лет без каких-либо обновлений - по крайней мере, при условии, что нет необходимости в критических исправлениях безопасности. Обычно устройство доступно только в локальной сети.