如何测量执行汇编代码所需的“时间单位”

问题描述 投票:0回答:1

我正在阅读一本名为《算法分析入门》的书(由Robert Sedgewick和Philippe Flajolet撰写),在第一章中,当他们试图分析快速排序算法时,他们说了一些根本无法理解。在尝试计算循环的“资源需求”时,例如:

while( a[++i] < v );

他们说可以用汇编语言编写为:

LOOP INC I,1
     CMP V,A(I)
     BL LOOP

到目前为止,我想还不错,但是随后他们提到了(对于第一次估计),可以合理地考虑一次循环的消耗“四个时间单位”的迭代,他们说“每个内存引用一个”。我不知道“时间单位”是什么意思,对“四个”的量化度量是从哪里来的,汇编代码是如何处理的,我所引用的短语是对论点的解释也是我不知所措的东西。只是为了澄清一下,我真的不希望有人向我解释Quicksort,我想知道分析中这些独立表示的抽象含义是什么。有人可以帮我吗?

algorithm assembly quicksort
1个回答
0
投票

我认为它们的意思是要执行一次循环,他们需要执行4个操作(获取一个变量,获取另一个变量,递增一个变量,比较它们),因此将需要4个时钟周期来执行。

“实际时间”的实际数量将是单个时钟周期完成的时间乘以时钟周期的数量。

Tl; Dr,“时间单位”在这里表示“一个时钟周期需要花费您的计算机多长时间”,而这4个来自于每个循环需要完成4个操作。

© www.soinside.com 2019 - 2024. All rights reserved.