У консольных приложений.NET Core есть потолок памяти?

Я успешно развернул ряд решений в виде консольных приложений.NET Core. Они успешно выполняются в нормальных условиях, но часто кажется, что загрузка данных (с помощью запроса EntityFramework Core с.ToList() для сохранения в памяти для множественного доступа), кажется, разворачивает процесс без ошибок, но никогда в одном и том же месте. Кто-нибудь знает какие-либо установленные ограничения памяти или процессов в консольных приложениях.NET Core C#, о которых следует знать? Я никогда не превышаю процессор или память на хост-машине. Как правило, к списку, к которому обращаются в первый раз после первого.ToList(), выполненного ранее в коде с мощным запросом, который подпитывает его, будет сделано исключение нулевого объекта в списке.

На данный момент это.NET Core 2.0.0 SDK.

Если вы знаете об опубликованных лимитах, это было бы отлично. Я собираюсь попробовать использовать MiniProfiler для проведения экспертизы. ТИА.

1 ответ

Решение

Ответ на этот вопрос был двояким. Во-первых... переход на x64 по сравнению с AnyCPU увеличил некоторый потолок, но во-вторых, метод.Include() в EntityFramework Core должен использоваться экономно и профилировано. Это взорвало и график в памяти. Так что да, простой вопрос, на который два человека понизили мой вопрос, возможно, был простым ответом, но он усугублялся с помощью.Include(), который является вспомогательным методом, но может причинить вам вред, если его неправильно профилировать и использовать.

Другие вопросы по тегам