Static Constructor and Performance






4.64/5 (7 votes)
.Net Performance Tip - 1
.Net Performance Tip - 1
There are 2 modes by which the CLR emits the JIT code while executing static type constructor
1) Precise mode
2) Before - field - Init Mode
In Precise mode - the code will be Jitted just beofe the first initialization/access call to a static variable
In Before - field - Init Mode - it will be Jitted during the first instance creation of the type
Hence, Before field init mode is much more performant intent than the precise mode,as shown below
public class BeforInitMode { static int i = 20; }In before init Mode - type constructor is jittted much before the static member variable initialization/access
public class PreciseMode { static int i; static PreciseMode() { i = 20; } }In this mode - type constructor is jitted just beofre the first type variable initilization/access Ref: CLR via C# by Jeffrey I hope this helps!. Regards, -Vinayak