我使用了一个在Visual Studio2008中开发的应用程序,并通过COM Interop使用了各种Office库。我开始使用dynamic关键字和Visual Studio2010进行一些概念验证开发。我发现使用dynamic执行相同的任务比使用“旧”方法要慢5-10倍。还有没有人经历过这种级别的性能下降?这是已知的吗,或者我应该找到一种方法来报告这一点?
发布于 2012-08-14 19:27:12
是的,有一个已知的性能命中与dynamic关键字。这样做的原因是,它必须将值装箱到object类型中,然后使用DLR (一次性)对其进行编译和计算。与已知类型相比,这将在处理器上花费更多的时间。您可以在此question上查看接受的答案,以获取更详细的描述。
最后,在您的情况下,情况会更糟,因为它已经是一个COM对象,因此在COM开销之上对该对象进行装箱和取消装箱将被夸大。
https://stackoverflow.com/questions/1897784
复制相似问题