我有兴趣找到解决方案中发生装箱或拆箱的所有地方。我知道我可以像这样使用ildasm:
Ildasm.exe yourcomponent.dll /text | findstr box
但我不想看MSIL级别。 有一个简单的方法吗?
答案 0 :(得分:0)
你可以用FXCOP做到这一点:(带有例子的旧文章)
答案 1 :(得分:0)
这是#Roslyn的一个完美的用例。像往常一样从微软和Jon Skeet推出的编译器即服务是绝对正确的。我正在写一本关于Roslyn的书,以展示如何使用Roslyn进行这些代码分析,并通过JavaScript进行一些引人注目的可视化。
以下是查找拳击通话的代码。但是范围解析起着重要作用。但这个例子应该让你开始。在https://www.amazon.com/Source-Analytics-Roslyn-JavaScript-Visualization/dp/1484219244?ie=UTF8& 版本 = 1& 条目 = 0
预订您的副本以获得更多此类内容https://gist.github.com/sudipto80/43efdecb878cac17b340cda2c281c3b3
答案 2 :(得分:0)
Clr Heap Allocation Analyzer是一个免费的Visual Studio插件,可以检测许多(但不是全部)拳击形式,并会突出显示您的源代码并提供工具提示说明。
您还可以使用Visual Studio Diagnostic Tools来分析内存分配。这不会直接揭示拳击,但是当你在堆上看到一个值类型时,你知道它已被装箱(例如,你会看到对Int32的引用需要12个字节)。