0

AddIn Express を使用して開発された .NET Excel アドインの初回実行時のパフォーマンスを改善したいと考えています。

さまざまなタスクの最初の実行時にアドインの実行速度が遅いのは、JIT が MSIL をネイティブの実行可能なマシン コードに変換するのに時間がかかるためです。

これを修正する標準的な方法は、インストーラーからアセンブリで NGen を実行して、ネイティブ コードを事前に生成することです。

インストーラーに Wix Toolset を使用し、適切にセットアップしようとしましたが、初期実行が遅い問題をまだ解決できていないため、Addin Express Excel でこれを機能させるために何か特別なことをする必要があるかどうか疑問に思っています。アドイン。情報が重要な場合に備えて、私のアドインは %LocalAppData% フォルダーにインストールされます。

ここのガイドに従いました: http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/ngen_managed_assemblies.html http://wixtoolset.org/documentation/manual/v3/xsd/netfx/nativeimage.html

私のWix xmlに次のようなものがあります:

<netfx:NativeImage Id="ngen_MyExcelAddin.dll" Platform="all" Priority="0" AppBaseDirectory="TARGETDIR" />

私のインストーラーは正常にビルドされ、正常にインストールされますが、最初の実行が遅いという問題が解消されず、まだ JIT を使用していると思われます。私の最初の考えは、AssemblyApplication プロパティを指定する必要があるかもしれないということでしたが、さまざまな AddinExpress dll (adxloader64.dll、adxloader.dll、AddinExpress.XL.2005.dll、AddinExpress.MSO.2005.dll) に設定して失敗。どんな助けでも大歓迎です。

4

1 に答える 1

2

他のフォーラムでいくつかのコメントを読んだ後、NGen には、管理者権限を必要とするインストーラーと、GAC に dll をインストールする必要があったようです。私のインストーラーは現在のユーザー向けであり、管理者アクセスを必要としないため、NGen の使用には適していませんでした。

代わりに、このリンクのコードを使用してアドインが最初に読み込まれるときに、バックグラウンド スレッドでほとんどのメソッドをプリコンパイルすることで、同様のことを行いました: http://www.codeproject.com/Articles/31316/Pre-compile-pre- JIT-your-assembly-on-the-fly-or-tr

于 2016-09-09T06:58:51.523 に答える