Jump to content
Wikipedia The Free Encyclopedia

Native Image Generator

From Wikipedia, the free encyclopedia
Service of the .NET framework
"NGen" redirects here. For other uses, see NGEN (disambiguation).
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Native Image Generator" – news · newspapers · books · scholar · JSTOR
(July 2025) (Learn how and when to remove this message)

The Native Image Generator, or simply NGen, is the ahead-of-time compilation (AOT) service of the .NET Framework.[1] It allows a CLI assembly to be pre-compiled instead of letting the Common Language Runtime (CLR) do a just-in-time compilation (JIT) at runtime. In some cases the execution will be significantly faster than with JIT.

General information

[edit ]

The Native Image Generator produces a native binary image for the current environment (i.e.; operating systems). This eliminates the JIT overhead at the expense of portability and disk space; whenever an NGen-generated image is run in an incompatible environment, .NET Framework automatically reverts to using JIT. Once NGen is run against an assembly, the resulting native image is placed into the Native Image Cache (NIC) for use by all other CLI assemblies. This makes it possible, for example, to use NGen to process CLI assemblies at installation time, saving processor time later on, when the end-user invokes the application on their system.

NGen is intended to make the assembly execute faster by removing the JIT compilation process at runtime, but this does not always improve performance because some optimizations can be done only by a JIT compiler (e.g., if the JIT compiler knows that the code is already running with full trust, it can skip certain expensive security checks). Because of this fact, it makes sense to use NGen only after benchmarking the application performance before and after it.

See also

[edit ]

References

[edit ]
  1. ^ Vermeir, Nico (2022). "Runtimes and Desktop Packs". Introducing .NET 6. Berkeley, California: Apress. doi:10.1007/978-1-4842-7319-7_2.
[edit ]
Wikibooks has a book on the topic of: .NET Development Foundation
Implementations
Architecture
Components
Tools
Decompilers
Obfuscators
IDEs
Organizations
Microsoft development tools
Development
environments
Visual Studio
Others
Languages
APIs and
frameworks
Native
.NET
Device drivers
Database
SQL Server
SQL services
Other
Source control
Testing and
debugging
Delivery

AltStyle によって変換されたページ (->オリジナル) /