我采用了一个在 Visual Studio 2008 中开发的应用程序,并通过 COM Interop 使用了各种 Office 库。我开始使用 dynamic 关键字和 Visual Studio 2010 进行一些概念开发证明。我发现使用 dynamic 执行相同的任务比“旧”方式慢 5-10 倍左右。有没有其他人经历过这种程度的性能下降?这是已知的还是我应该找到一种方法来报告这个?
最佳答案
是的,dynamic
对性能有影响。关键词。这样做的原因是因为它必须将值装箱到 object
中。键入,然后使用 DLR(一次性)对其进行编译和评估。与已知类型相比,这将在处理器上花费更多时间。您可以在此 question 上看到已接受的答案以获得更详细的描述。
最后,在您的情况下,情况会更糟,因为它已经是一个 COM 对象,因此在 COM 开销之上装箱和拆箱该对象会被夸大。
关于visual-studio-2010 - C# 4.0 动态 Office 互操作性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1897784/