2009-12-13 151 views
6

我已經採用了在Visual Studio 2008中開發的應用程序,並通過COM Interop使用了各種Office庫。我開始使用動態關鍵字和Visual Studio 2010進行概念開發的一些證明。我發現,使用動態比「舊」方法執行相同的任務要慢5-10倍。是否有其他人遇到過這種性能下降的問題?這是已知的,還是我應該找到一種方法來報告?C#4.0動態Office互操作性能

回答

1

是的,有一個已知的性能命中與dynamic關鍵字。原因是因爲它必須將值填入object類型中,然後使用DLR(一次性)對其進行編譯並對其進行評估。這種處理器需要花費更多的時間,如果這種類型是已知的。您可以在question上看到接受的答案,以獲得更多擴展說明。

最後,在你的情況下,它會更糟糕,因爲它已經是一個COM對象,因此在COM開銷之上裝箱和拆箱該對象將被誇大。