Цитата:
Сообщение от
belugin
оно вроде всегда в нейтив компиолируется.
Нет, результатом компиляции .Net сборки является файл с метаданными и кодом на промежуточном языке (IL). Компиляция в машинный код каждого вызываемого метода происходит в момент первого вызова этого самого метода. При последующем вызове компиляции и верификации происходить не будет, будет использоваться уже скомпилированный в первый раз код. Если хочется избежать компиляции методов при их первом вызове, то действительно можно воспользоваться утилитой NGen.exe. NGen.exe компилирует IL код указанной сборки в машинный и сохраняет его в файле. Потом при запуске приложения CLR ищет предварительно скомпилированный файл и если он есть - загружает его, так что компиляция в период выполнения не производится. Но тут есть одно "но". Скомпилированный в момент выполнения код может быть более производительным, т.к. компиляция будет производится на том компьютере, на котором будет исполняться сборка, поэтому будет присутствовать некоторая оптимизация исходя из парамметров компьютера.