-
[C# 개념] 2.3 CLR에 대하여Anna belly belly hard/C# 2023. 6. 21. 14:21반응형
- C#으로 만든 프로그램은 CLR 위에서 실행됩니다.
- CLR은 자바의 실행 환경인 자바 가상 머신과 비슷한 역할을 합니다.
- CLR은 .NET 라이브러리와 함께 OS 위에 설치됩니다.
- 네이티브 코드로 작성된 프로그램들은 운영체제가 직접 실행 할 수 이지만 , c# 컴파일러가 만들어낸 실행 파일은 하드웨어가 이해 할 수 없는 코드로 구성되어 있기 때문에 실행 할 수없다.
- C# 컴파일러는 C# 소스코드를 컴파일 해서 IL(Intermediate Language) 이라는 중간 언어로 작성된 실행 파일을 만든다.
- 사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어 들여 다시 하드웨어가 이해할 수 있는 네이티브 코드로 컴파일 한후 실행 시킵니다. 이것을 'JIT(Just In Time) 컴파일' 이라고 부르고 '적시 컴파일' 이라고도 합니다.
- JIT 컴파일 : 실행에 필요한 코드를 실행 할때 마다 실시간으로 컴파일 해서 실행
- C#이 동작하는 환경이자 엔진인 CLR은 C# 뿐만 아니라 다른 언어도 지원되도록 설계, 서로 다른 언어들이 만나기 위한 지점이 바로 IL 이라는 중간언어이고, 이언어로 쓰인 코드를 CLR 이 다시 자신이 설치된 플랫폼에 최적화 해 컴파일 한 후 실행
- 이 방식의 장점 은 바로 플랫폼에 최적화된 코드를 만들어 낸다, 단점은 실행 시 이루어지는 컴파일 비용의 부담입니다. 내가 만든 프로그램이 컴파일 비용 부담 없이 어떤 기계에서도 평균적인 성능을 내는 것과, 컴파일 비용이 조금 부담스럽긴 해도 기계에 최적화 되어 최고의 성능을 내는것.
- CLR 은 단순히 C# 이나 기타 언어들을 동작시키는 환경 기능 외에도 , 프로그램의 오류(예외) 가 발생했을때 이를 처리하도록 도와주는 기능, 언어간 상속 지원 , COM과의 상호운용성 지원, 자동 메모리 관리 기능 제공
- 자동 메모리 관리 = 가비지 컬렉션 : 프로그램에서 더이상 사용하지 않는 메모리를 쓰레기(garbage)로 간주하고 수거(collection)하는 기능
반응형'Anna belly belly hard > C#' 카테고리의 다른 글
[C# 개념] 3.1 다양한 데이터의 종류 (0) 2023.06.21 [C# 개념] Chapter 3. 데이터 보관하기 (0) 2023.06.21 [C# 개념] 2.2 첫 번째 프로그램 뜯어보기 (0) 2023.06.21 [C# 개념] 2.1 Hello, World ! (0) 2023.06.21 [C# 개념] chapter 2. 처음 만드는 C# 프로그램 (0) 2023.06.21