0

我想对我的 .NET 代码(它是 .dlls、.exe 和 C# 代码的组合)进行一些相当基本的程序分析。使用 Microsoft 的Common Compiler Infrastructure,我首先将代码转换为我想要构建调用图的 IL 形式。获得调用图后,是否可以利用一些标准工具来深入了解代码复杂性、识别瓶颈、内存占用等?任何指针将不胜感激!

4

1 回答 1

0

我认为你想要的几乎是不可能的。对象分配的数量可能会因特定输入而有很大差异。

例如,假设您的程序中有一个方法分配了很多对象,但它只能在某些条件下运行。如果您的分析要准确评估对象分配的计数,则需要知道该方法是否运行。做到这一点的唯一方法是实际评估该条件,这意味着您实际上需要运行该程序。

并且内存占用可能更加困难:它需要您跟踪完整的对象图并模拟 GC。

简而言之:找出程序性能特征的最佳方法是实际运行它。使用静态分析做同样的事情会很困难而且不准确。不要忘记,使用静态分析是不可能知道程序是否完成的。我觉得你想要的更难。

于 2012-07-13T08:09:40.897 回答