当前位置: 首页 > 知识库问答 >
问题:

花费在跳转指令上的时间

司信厚
2023-03-14

分析我的代码时,我发现很大一部分时间(~5%)花在跳转指令上;特别是< code>jnbe 0x1800...。不幸的是,我不确定为什么跳转指令会花费这么多时间(比之前调用相同次数的< code>mulsd命令花费的时间百分比更高);它只是告诉处理器移动到一个特定的位置,实际上它本身并不做任何事情,对吗?我的最佳猜测是,对于这个特定的条件,分支预测失败了,这导致这个语句比我预期的要长。

共有1个答案

顾乐池
2023-03-14

@EOF的评论涵盖了主要原因。CPU 性能计数器可以跟踪分支错误预测,因此您可以查看该分支是否预测得很差。

使用Linuxperf或Intel的Vtune或其他可用的工具。

perf stat ./some-program  # a quick summary, not broken down by insn

perf record -e branch-misses ./some-program
perf report  # poke around at which instructions had branch misses
 类似资料:
  • 问题内容: 在UNIX / LINUX中,是否有一种简单的方法来跟踪命令花费的时间? 问题答案: 是的,请使用,例如 请咨询更多选项。连结。

  • 问题内容: 假设我正在测试Java服务器应用程序。我知道需要多少时间才能完成测试。现在,我想知道该测试期间在GC上花费了多少。我该怎么做? 问题答案: 最简单的方法是在启动JVM时使用和选项。我认为它可以打印出垃圾收集需要多长时间。 http://www.oracle.com/technetwork/java/javase/tech/vmoptions- jsp-140102.html

  • 问题内容: 我想衡量用户在网页上花费的时间(以秒为单位,以整数为单位,以浮点数表示,以分钟为单位)。我知道有一个卸载事件,当他们离开页面时,我可以触发该事件。但是如何获得他们已经在那里度过的时间呢? 问题答案: 如果您使用Google Analytics(分析),他们会提供此统计信息,尽管我不确定他们是如何获得的。 如果要自己滚动,则需要将一些AJAX请求发送到服务器进行日志记录。 jQuery有

  • 我正在尝试训练一个模型,在我看来,与其他数据集相比,该模型花费的时间太长,因为完成一个历元需要大约1小时和20分钟。我认为问题是因为数据集没有存储在ram上,但我不确定这一点。 代码如下: 型号: 顺序模型 2个卷积层,32个神经元,激活=relu 1个卷积层,64个神经元,激活=relu 平整和致密层,激活=relu 退出0.5 具有sigmoid激活的输出层(致密) Adam optimize

  • 我不知道在哪里使用指令,在哪里使用汇编中的instructions? 从性能来看: 它们有什么区别? 哪一个更好? 如果可能的话,请举例说明它们的区别。