Ответ 1
Вам нужно понять, что для приложения .NET больше кода, чем только код, который вы написали. Он должен загружать сборку, анализировать ее, компилировать, выполнять, а затем загружать в различные библиотеки поддержки и т.д. (Некоторые из них могут потребовать аналогичного анализа, компиляции и т.д.), И все это создает ошибки страницы, 3500 - это не так много ошибок страниц в великой схеме вещей.
В качестве примера я попробовал несколько "простых" консольных приложений. Более того, запускается с консоли, генерирует 750 ошибок страницы, и это довольно крошечное приложение, которое делает немного больше, чем эхо от одного входа к другому. Он написан на языке C, который не является сборкой мусора, не имеет виртуальной машины или большой библиотеки времени выполнения, которая должна быть с ней (она статически связана, поэтому она не зависит от времени выполнения).
Учитывая все, что делает .NET, однострочное консольное приложение, которое просто делает ReadLine, используя только 1500 ошибок страницы, кажется довольно хорошим.
Я даже не уверен, почему вас волнуют ошибки страниц. Возможно, вы идете с платформы, где ошибки страниц - это плохо. В Windows процессы "поддерживаются страницей", что означает, что память ОС сопоставляет исполняемый файл, а затем требует загрузки страниц по мере необходимости (это включает в себя общие библиотеки, а также сам исполняемый файл, значки, изображения и всевозможные вещи). Каждая из этих страниц генерирует ошибку страницы, когда ОС необходимо загрузить их в память. Это нормально, и то, как работает ОС.