문제

C#과 같은 현대적인 크로스 플랫폼 프로그래밍 언어로 API 통화 등으로 빠른 기본 응용 프로그램을 작성하면 굉장하지 않습니까? 예를 들어 쉽고 현대적인 프로그래밍 언어로 다른 구성 요소가 필요하지 않은 물건을 설치하는 사람들을 돕기위한 간단한 유틸리티를 작성하려면? 또는 3D 게임을 쓰고 싶다면 빠르고 JIT가 느리게 만들 것입니다 ...

왜, 왜 가능하지 않습니까? 이러한 것들에 대한 기본 현대 프로그래밍 언어가없는 이유는 무엇입니까?

도움이 되었습니까?

해결책

C# 및 .NET ~이다 기본 코드. 나는 당신이 지터를 오해한다고 생각합니다. VM이 아닙니다. AC# 프로그램은 실행되기 전에 완전히 기본 코드로 컴파일됩니다.

이제 "다른 구성 요소 필요"부분이 관심사입니다. 그래도 시간을주세요. 요즘에는 .NET 2.0이없는 Windows 설치를 찾기가 어려울 수 있으며, 주류 Linux 배포판에도 모노가 포함되어 있습니다.

다른 팁

JIT가 일을 느리게 만든다고 가정하지 마십시오. JIT는 386 또는 Pentium과 같은 일반 컴퓨터가 아닌 응용 프로그램을 실행하는 정확한 컴퓨터를 최적화 할 수 있습니다. 코드를 생성 할 때 더 나은 속도/메모리 트레이드 오프 결정을 할 수도 있습니다. 그리고 JIT가 여전히 느리게 만들면 Jitting이 모두 미리 이루어 지도록 Ngen을 할 수 있습니다.

이것의 증거로서, 그것을 고려하십시오 Quake는 CLR에 포팅되었습니다 몇 번이나 개인 테스트에서 초당 프레임은 더 빠르게 Quake가 CLR에서 약 절반의 시간에 실행될 때 나는 그것을 데모합니다.

컴파일 된 .NET 프로그램은 C만큼 빨리 실행되는 것으로 나타났습니다.

Microsoft ngen.exe 도구를 사용하여 .NET 어셈블리의 기본 이미지를 만들 수 있습니다. 보다 MSDN NGEN 문서. Microsoft는 이미 여기에있는 것에 대해 이미 알고 있습니다.

Microsoft도 만듭니다 ilmerge.exe 도구 여러 어셈블리 파일을 하나로 병합합니다. 이것은 최적화와 속도에도 국경적 일 수 있습니다.

참고로 Mono는 미리 컴파일을하면 런타임을 제거합니다. (나는 그것이 그들이 iPhone에서 도망 치는 방법이라고 생각합니다. 모든 JIT를 금지합니다.)

그렇다면 이는 (Limited) .NET를 사용하여 C# 프로그램을 완전히 컴파일하고 연결할 수 있음을 의미합니까?

참고 : 5000 서버의 서버 부동산을 확인하면 .NET 2.0조차도 약 200 개의 공개되었습니다.

"모든 Windows 인스턴스"에서 실행 해야하는 코드의 문제가 발생합니다. .NET 4.0+가 2.0을 포함하지 않으면 새로운 Wind

C. C는 모든 응용 프로그램을 작성하는 데 사용될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top