... | ... | @@ -5,7 +5,7 @@ |
|
|
|
|
|

|
|
|
|
|
|
위의 그림을 보면 C#컴파일러는 CLR를 로드하는 코드와 C#소스코드를 기계어가 아닌 IL코드로 EXE/DLL파일 내부에 생성한다. 따라서 사용자가 C#으로 개발된 애플리케이션을 실행하면 내부적으로 CLR이 먼저 로드된다. 이어서 CLR은 EXE 파일 내에 있는 IL코드를 로드해서 실행시킨다.
|
|
|
위의 그림을 보면 C#컴파일러는 CLR를 로드하는 코드와 C#소스코드를 기계어가 아닌 IL코드로 EXE/DLL파일 내부에 생성한다. 따라서 사용자가 C#으로 개발된 애플리케이션을 실행하면 내부적으로 CLR이 먼저 로드된다. 이어서 CLR은 EXE파일 내에 있는 IL코드를 로드해서 실행시킨다.
|
|
|
|
|
|
### **CLR**
|
|
|
CLR는 두 가지 큰 기능이 있는데, 하나는 CIL를 JIT컴파일러를 이용해 기계어로 변환하는 것이고, 다른 하나는 GC(Garbage Collector)를 제공해 동적 메모리 할당 및 회수를 지원하는 것이다. CLR의 JIT(Just In Time compilation)은 CIL파일이 정상인지 판단하고 Runtime 시 사용하는 native코드를 IL코드로 변환 후 호출한다. JIT은 지속적으로 보안, 메모리 관리, 쓰레드와 같은 부분을 Runtime 시 지속적으로 관리한다.
|
... | ... | |