CLR(Common Language Runtime)
CLR은 C# 프로그램이 실행되는 환경이고 .NET 프레임워크의 실행을 관리합니다. 자바를 아시는 분들은 CLR은 자바 가상 머신(Java Virtual Machine)과 비슷하다고 생각하시면 됩니다.
C#으로 만든 실행파일은 네이티브 코드로 되어있지 않고 IL(Intermediate Language, 중간언어)로 되어있기 때문에 운영체제가 이해할 수 없습니다. C# 컴파일러는 C#으로 작성한 코드를 IL로 만들고 CLR은 프로그램 실행 시 IL을 운영체제가 이해할 수 있는 네이티브 코드로 바꿔줍니다. IL을 네이티브 코드로 바꾸는 것을 JIT(Just In Time, 적시 컴파일)이라고 하는데 필요한 코드를 실행할 때마다 실시간으로 컴파일해서 실행한다는 의미입니다.
C# 컴파일러가 IL을 만들고 CLR은 IL을 네이티브 코드로 컴파일하는 번거로운 과정을 거치는 이유는 CLR이 플랫폼에 최적화된 코드를 만들기 때문입니다. 또한 .NET 프레임워크가 설치되어 있다면 어떤 플랫폼이던 상관없이 프로그램을 실행할 수 있습니다.
CLR의 장점은 IL을 네이티브 코드로 변환하는것 뿐만 아니라 메모리 관리, 타입 관리, 예외 처리, 가비지 컬렉션, 쓰레드 관리 등 추가적인 서비스를 제공합니다.
단점은 코드가 클 경우 IL을 네이티브 코드로 변환하는 컴파일 비용이 많을 수 있습니다.
참고
Common Language Runtime (CLR) in C# - GeeksforGeeks
CLR is the basic and Virtual Machine component of the .NET Framework. It is the run-time enviornment in the .NET Framework that runs the codes… Read More »
www.geeksforgeeks.org
Common Language Runtime - Wikipedia
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code), into machine instructions which
en.wikipedia.org
댓글