Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在代码中检测装箱/拆箱_C#_Visual Studio 2015_Boxing - Fatal编程技术网

C# 如何在代码中检测装箱/拆箱

C# 如何在代码中检测装箱/拆箱,c#,visual-studio-2015,boxing,C#,Visual Studio 2015,Boxing,我感兴趣的是在我的解决方案中找到所有发生装箱或拆箱的地方。我知道我可以像这样使用ildasm: Ildasm.exe yourcomponent.dll /text | findstr box 但我不想看MSIL级别。 有没有一种简单的方法可以做到这一点?您可以使用FXCOP:old article和example来实现这一点 您可以使用FXCOP:old-article和example实现这一点 这是Roslyn的一个完美用例,微软和Jon Skeet一如既往地推出的编译器即服务绝对正确。我

我感兴趣的是在我的解决方案中找到所有发生装箱或拆箱的地方。我知道我可以像这样使用ildasm:

Ildasm.exe yourcomponent.dll /text | findstr box
但我不想看MSIL级别。
有没有一种简单的方法可以做到这一点?

您可以使用FXCOP:old article和example来实现这一点


您可以使用FXCOP:old-article和example实现这一点


这是Roslyn的一个完美用例,微软和Jon Skeet一如既往地推出的编译器即服务绝对正确。我正在写一本关于Roslyn的书,展示如何使用Roslyn进行这些代码分析,并通过JavaScript进行一些引人注目的可视化

下面是查找装箱调用的代码。然而,范围解析起到了一定的作用。但是这个例子应该让你开始。预先订购您的副本,以便在版本=1和条目=0时获得更多此类副本


这是Roslyn的一个完美用例,微软和Jon Skeet一如既往地推出的编译器即服务绝对正确。我正在写一本关于Roslyn的书,展示如何使用Roslyn进行这些代码分析,并通过JavaScript进行一些引人注目的可视化

下面是查找装箱调用的代码。然而,范围解析起到了一定的作用。但是这个例子应该让你开始。预先订购您的副本,以便在版本=1和条目=0时获得更多此类副本

是一个免费的VisualStudio附加组件,它可以检测许多但不是所有形式的装箱,并将突出显示您的源代码并提供工具提示说明

您还可以使用VisualStudio分析内存分配。这不会直接显示装箱,但当您看到堆上的值类型时,您就知道它已装箱。例如,您将看到对Int32的引用需要12个字节。

是一个免费的Visual Studio附加组件,它可以检测许多但不是所有形式的装箱,并将突出显示您的源代码并提供工具提示说明


您还可以使用VisualStudio分析内存分配。这不会直接显示装箱,但当您看到堆上的值类型时,您知道它已装箱,例如,您将看到对Int32的引用需要12个字节。

您可能会使用Roslyn来完成此操作。。。你研究过了吗?我想在Roslyn中解析语法树需要做很多工作才能弄清楚这一点。你可以这么做,但老实说,ildasm是最便宜的方式。你关心拳击是出于性能原因还是出于好奇?@MichaelBraude,主要是好奇。只是想为我的团队生成一份关于我看到的所有地方的报告。谢谢我建议采用不同的方法。与其查找所有要装箱/取消装箱的位置,不如进行性能跟踪并确定垃圾收集是否会影响应用程序的性能。如果是,那么您可以深入到有问题的代码片段中,并修复它们。识别它们的方法是通过追踪。装箱/拆箱可能会影响您的性能。。。而且可能不是。唯一能让你确定的方法就是跟踪。我认为这将是一个比您正在尝试做的更有用的练习。尽管它可能不会影响性能,但我认为将有一个工具可以通过装箱映射代码中的所有位置。我猜我错了你可以用Roslyn来做这个。。。你研究过了吗?我想在Roslyn中解析语法树需要做很多工作才能弄清楚这一点。你可以这么做,但老实说,ildasm是最便宜的方式。你关心拳击是出于性能原因还是出于好奇?@MichaelBraude,主要是好奇。只是想为我的团队生成一份关于我看到的所有地方的报告。谢谢我建议采用不同的方法。与其查找所有要装箱/取消装箱的位置,不如进行性能跟踪并确定垃圾收集是否会影响应用程序的性能。如果是,那么您可以深入到有问题的代码片段中,并修复它们。识别它们的方法是通过追踪。装箱/拆箱可能会影响您的性能。。。而且可能不是。唯一能让你确定的方法就是跟踪。我认为这将是一个比您正在尝试做的更有用的练习。尽管它可能不会影响性能,但我认为将有一个工具可以通过装箱映射代码中的所有位置。我想我错了