6

我采用了一个在 Visual Studio 2008 中开发的应用程序,并通过 COM Interop 使用了各种 Office 库。我使用 dynamic 关键字和 Visual Studio 2010 开始了一些概念开发验证。我发现使用 dynamic 执行相同任务的速度比“旧”方式慢大约 5-10 倍。有没有其他人经历过这种程度的性能下降?这是已知的还是我应该找到一种方法来报告这个?

4

1 回答 1

1

是的,该关键字存在已知的性能影响。dynamic这样做的原因是它必须将值装箱到object类型中,然后使用 DLR(一次性)对其进行编译和评估。与已知类型相比,这将在处理器上花费更多时间。您可以查看此问题的已接受答案以获得更详细的描述。

最后,在您的情况下,情况会更糟,因为它已经是一个 COM 对象,因此在 COM 开销之上装箱和拆箱该对象将会被夸大。

于 2012-08-14T11:27:11.980 回答