在Silverlight 2中,DLR语言与C#之间的速度有何不同?

Nos*_*dna 0 c# silverlight ironpython ironruby silverlight-2.0

对于Silverlight 2,看起来编程选择是:

  • C#
  • VB
  • DLR脚本语言
    • IronRuby的
    • IronPython的
    • 一个可悲的被忽略(如果没有取消)托管的jScript

这种情况下,本地语言(C#和VB)比DLR语言快一个数量级左右?

当我进行Silverlight客户端编程时,有没有希望在IronPython中"生活",或者我是否应该为处理器密集型工作投入C#?

我对语言的调查来自C#和VB的这组例子以及讨论DLR的这个页面.

Jar*_*Par 11

不幸的是,这个问题没有硬性和快速的答案.即使是相同语言的性能也会因许多参数而有很大差异.

是的,一般来说 VB.Net和C#将比基于DLR的语言更快.静态语言在编译时执行更多工作,例如方法绑定.这种类型的工作必须在运行时为基于DLR的语言完成,因此它们在运行时会有更多的成本.

但是,在优化基于DLR和DLR的语言方面还有很多工作要做.这些工作大部分都是通过各种缓存等来缓解的.在许多类型的应用中,性能差异将是可以忽略的.

我不排除仅基于性能的基于DLR的语言,除非剖析器告诉我它实际上是一个问题.