Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
Visual studio Visual Studio CPU使用中两条相似汇编指令的性能差异_Visual Studio_Assembly_X86_Profiling_Intel Pmu - Fatal编程技术网

Visual studio Visual Studio CPU使用中两条相似汇编指令的性能差异

Visual studio Visual Studio CPU使用中两条相似汇编指令的性能差异,visual-studio,assembly,x86,profiling,intel-pmu,Visual Studio,Assembly,X86,Profiling,Intel Pmu,我有一些内联程序集,我试图分析。有趣的是,两个非常相似的操作maxs和mins彼此之后对性能的影响非常不同。有人有这方面的经验吗?也许是一些缓存?或者VisualStudio中的CPU使用情况不正确 这是来自硬件性能计数器吗?使用超标量OoO exec,不容易将周期归因于任何特定指令。硬件经常“责备”等待缓慢输入的指令,而不是产生结果的指令。此外,对于像cycles这样的事件,存在问题组和失效组的粒度:当每个周期执行一条以上的指令时,HW可能总是责怪组中的第一条指令。另外,“歪斜”也是一种真正的

我有一些内联程序集,我试图分析。有趣的是,两个非常相似的操作maxs和mins彼此之后对性能的影响非常不同。有人有这方面的经验吗?也许是一些缓存?或者VisualStudio中的CPU使用情况不正确


这是来自硬件性能计数器吗?使用超标量OoO exec,不容易将周期归因于任何特定指令。硬件经常“责备”等待缓慢输入的指令,而不是产生结果的指令。此外,对于像
cycles
这样的事件,存在问题组和失效组的粒度:当每个周期执行一条以上的指令时,HW可能总是责怪组中的第一条指令。另外,“歪斜”也是一种真正的影响,归咎于后来的指令。相关示例:显示了许多归咎于等待加载的指令,而不是加载。听起来像是一个工具错误,任何认为它们可以告诉您单个指令需要多长时间的工具(不必是超级标量器,流水线就可以),都不值得信任。分析函数是一回事,指令是另一回事。在第一条
maxs xmm2,xmm1
指令之前的几条指令是什么?它可能正在等待
shufps xmm1,xmm1,2
指令有可用的结果。这是来自硬件性能计数器的吗?使用超标量OoO exec,不容易将周期归因于任何特定指令。硬件经常“责备”等待缓慢输入的指令,而不是产生结果的指令。此外,对于像
cycles
这样的事件,存在问题组和失效组的粒度:当每个周期执行一条以上的指令时,HW可能总是责怪组中的第一条指令。另外,“歪斜”也是一种真正的影响,归咎于后来的指令。相关示例:显示了许多归咎于等待加载的指令,而不是加载。听起来像是一个工具错误,任何认为它们可以告诉您单个指令需要多长时间的工具(不必是超级标量器,流水线就可以),都不值得信任。分析函数是一回事,指令是另一回事。在第一条
maxs xmm2,xmm1
指令之前的几条指令是什么?它可能正在等待
shufps xmm1,xmm1,2
指令有可用的结果。