Visual Studio 2008で開発され、COM相互運用機能を介してさまざまなOfficeライブラリを使用するアプリケーションを使用しました。dynamicキーワードとVisualStudio2010を使用して概念実証の開発を開始しました。同じタスクの実行は、「古い」方法よりも動的を使用すると約5〜10倍遅くなることがわかりました。他の誰かがこのレベルのパフォーマンスの低下を経験しましたか?これは知られていますか、それともこれを報告する方法を見つける必要がありますか?
1 に答える
1
はい、キーワードによる既知のパフォーマンスヒットがあります。dynamic
これは、値を型にボックスobject
化し、DLR (1 回限り) を使用してコンパイルおよび評価する必要があるためです。これは、タイプがわかっている場合よりも、プロセッサでより多くの時間がかかります。より詳細な説明については、この質問で受け入れられた回答を参照してください。
最後に、あなたの場合、それはすでに COM オブジェクトであるため、さらに悪化するため、COM オーバーヘッドの上にそのオブジェクトをボックス化およびボックス化解除することは誇張されます。
于 2012-08-14T11:27:11.980 に答える