dan*_*tel 5 c# performance x86 cil ildasm
我正在尝试编译器性能.我有一小段代码,只有一些浮点乘法和加法.代码在循环中执行数百万次.我试图用C++,c#,java,perl,python编译代码......然后我在测量执行时间的同时运行结果.
我对c#性能非常不满意.我的c#代码比同等的C++或java慢约60%.我相信,我的实验中肯定有一个错误.我想反汇编生成的二进制文件来了解原因.
MSIL代码有这样的选项吗?是否可以在机器指令级别检查c#JIT编译器的结果(x86指令,而不是MSIL指令)?
更新
代码(u,v,g*是double; steps是整数)
stopwatch.Start();
for (int i = 0; i < steps; i++)
{
double uu = g11 * u + g12 * v;
v = g21 * u + g22 * v;
u = uu;
}
stopwatch.Stop();
Run Code Online (Sandbox Code Playgroud)
在Visual Studio中调试代码(但在发布模式下编译),在循环中放置一个断点,并在执行在断点处停止时打开反汇编窗口(Debug - > Windows - > Disassembly).
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |