2009-12-13 106 views
6

我已经采用了在Visual Studio 2008中开发的应用程序,并通过COM Interop使用了各种Office库。我开始使用动态关键字和Visual Studio 2010进行概念开发的一些证明。我发现,使用动态比“旧”方法执行相同的任务要慢5-10倍。是否有其他人遇到过这种性能下降的问题?这是已知的,还是我应该找到一种方法来报告?C#4.0动态Office互操作性能

回答

1

是的,有一个已知的性能命中与dynamic关键字。原因是因为它必须将值填入object类型中,然后使用DLR(一次性)对其进行编译并对其进行评估。这种处理器需要花费更多的时间,如果这种类型是已知的。您可以在question上看到接受的答案,以获得更多扩展说明。

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