문제

Silverlight 2의 경우 프로그래밍 선택이 다음과 같습니다.

  • 씨#
  • VB
  • DLR 스크립팅 언어
    • 아이언 루비
    • Ironpython
    • 슬프게 무시 된 (취소되지 않은 경우) 관리 JScript

모국어 (C# 및 VB)가 DLR 언어보다 훨씬 빠른 경우가 있습니까?

Silverlight 클라이언트 프로그래밍을 할 때 Ironpython에서 "살아있는"에 대한 희망이 있습니까?

언어에 대한 내 설문 조사는 유래합니다 C# 및 VB에 대한이 예제 세트 그리고 이 페이지는 DLR을 논의합니다.

도움이 되었습니까?

해결책

불행히도이 질문에 대해서는 어렵고 빠른 답변이 없습니다. 동일한 언어의 성능조차도 여러 매개 변수에 따라 크게 다릅니다.

예, 일반 VB.NET 및 C#은 DLR 기반 언어보다 빠릅니다. 정적 언어는 메소드 바인딩과 같은 컴파일 시간에 더 많은 작업을 수행합니다. 이러한 유형의 작업은 DLR 기반 언어의 런타임에 수행해야하므로 런타임에 약간 더 많은 비용이 발생합니다.

그러나 많은 작업이 DLR 및 DLR 기반 언어를 최적화하는 데 사용됩니다. 이 작업의 대부분은 다양한 캐시 등으로 완화됩니다. 많은 유형의 응용 프로그램에서 성능 차이는 무시할 수 있습니다.

프로파일 러가 실제로 문제라고 말하지 않는 한, 성능에 기반한 DLR 기반 언어를 배제하지 않을 것입니다.

다른 팁

일반적으로 알고리즘을 최적화하면 정적 언어로 다시 쓰는 것보다 훨씬 큰 영향을 미칩니다.

당신은 관심이있을 수 있습니다 표시 #429 .net Rocks, Michael Foord와의 인터뷰. 여기에서 관련된 발췌문이 있습니다 성적 증명서:

동적 언어는 테스트하기가 훨씬 쉽고 개발자가 그 당시에 수행 한 테스트 중심 개발 접근 방식에 실제로 적합합니다. 그러나 나는 성능의 이유로, 그들은 어느 시점에서 c#에 다시 작성해야한다고 가정했고, 3 년, 조금 후에 우리는 4 만 줄의 ironpython 코드를 얻었고, 우리는 테스트 코드에 약 140.000 줄을 가지고 있습니다. 약 300 줄의 C#을 얻었고 성능을 볼 때마다, 그들이 올 때마다 충분히 빠르게 작동하지 않는 작업을 찾을 때마다 알고리즘을 개선하여 필요한 속도를 얻을 수있었습니다. , Python 코드를 개선하고 C#에 떨어질 필요가 없으며 프로그램이 느리게 실행되는 이유는 일반적으로 언어의 잘못이 아니라 프로그래머 인 개발자의 잘못입니다.

또한 Boo를 사용할 수 있습니다. 여기 샘플이 있습니다 부와 실버 라이트 테트리스

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