The CLR provides the infrastructure that enables managed code to execute as well provides variety of services during execution. When a method, for which IL has been generated, is called for the first time the CLR compiles the IL into native code that is specific to the processor the Environment it is running on (This process is known as Just in Time Compilation or JIT). If the same method is called next time, the existing JIT compiled code is reused. During execution managed code receives variety of services from the runtime environment.
The Benifits of CLR are:Performance improvements.The ability to easily use components developed in other languages.Extensible types provided by a class library.Language features such as inheritance, interfaces, and overloading for object-oriented programming.Support for explicit free threading that allows creation of multithreaded, scalable applications.Support for structured exception handling.Support for custom attributes.Garbage collection.