Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ngenによるパフォーマンス劣化

131 views
Skip to first unread message

masakiy

unread,
Sep 9, 2008, 4:42:03 AM9/9/08
to
お世話になります。

Ngenを使用したら、使用前よりもパフォーマンスが劣化する現象が発生しました。
以下に現象を説明します。
C#で作成したクラスライブラリをCOM登録して、C++モジュールから呼び出すアプリケーションを開発しました。
C#で作成したクラスライブラリをC++モジュールから呼び出したとき、初回に限りパフォーマンス劣化が発生していました。
これは初回の.NET Frameworkのロード、JITの発生と考えて、Ngenを使用して、C#生成のクラスライブラリをネイティブファイルに変換しました。
この結果、3秒ほど、Ngenを使用した場合に遅くなってしまいました。

このようなことがありえるのでしょうか?

環境は、C#/Visual Studio 2005、OSはWinXP SP2です。

よろしくお願いします。

Shozo Arai

unread,
Sep 15, 2008, 7:51:43 AM9/15/08
to
荒井です。

masakiyさんの<9D55EFB1-C08E-4013...@microsoft.com>から


>これは初回の.NET Frameworkのロード、JITの発生と考えて、Ngenを使用して、C#生成のクラスライブラリをネイティブファイルに変換しました。
>この結果、3秒ほど、Ngenを使用した場合に遅くなってしまいました。

あります。
NGEN:事前のNativeコードであって、最適化が優れていません。
JIT:メソッド単位にJITコンパイルされ、最適化が行われます。
従ってNGENをするのは、実行時のオーバーヘッドの削減を目的とするだけで
す。JITでもメソッドのコンパイルやコンストラクタ、型コンストラクタ(静的
データ型)などのどの部分で時間が掛っているかを調べないと、単純にどこが
遅いかを指摘することが困難です。
このためプロファイリングをされることをお勧めします。

0 new messages