.NET コード (.dll、.exe、および C# コードの組み合わせ) に対してかなり基本的なプログラム分析を行いたいと考えています。Microsoft のCommon Compiler Infrastructureを使用して、最初にコードを IL 形式に変換し、これを使用してコール グラフを作成しました。コール グラフを取得したら、コードの複雑さ、ボトルネック、メモリ フットプリントなどを特定するための洞察を得るために活用できる標準ツールはありますか? どんなポインタでも本当に感謝しています!
質問する
465 次
1 に答える
0
あなたが望んでいることはほとんど不可能だと思います。オブジェクト割り当ての数は、特定の入力によって大きく異なる可能性があります。
たとえば、プログラムに多数のオブジェクトを割り当てるメソッドがあったとしますが、それはある条件下でのみ実行されます。分析でオブジェクト割り当ての数を正確に評価する場合、メソッドが実行されたかどうかを知る必要があります。それを行う唯一の方法は、その条件を実際に評価することです。つまり、実際にプログラムを実行する必要があります。
また、メモリ フットプリントはおそらくさらに困難です。完全なオブジェクト グラフを追跡し、GC をシミュレートする必要があります。
つまり、プログラムのパフォーマンス特性を知る最良の方法は、実際に実行することです。静的分析を使用して同じことを行うのは難しく、不正確です。静的解析を使用してプログラムが完了したかどうかを確認することは不可能であることを忘れないでください。あなたが望むものはさらに難しいと思います。
于 2012-07-13T08:09:40.897 に答える