2.14 时序
有时我们需要知道执行⼀段代码需要多⻓时间。我们可以为此使⽤计时器块。为了测量时间,我们使⽤变量 t 。
- 开始:以t为单位记住开始时间
- 结束:从当前时间减去开始时间 t
2.14.1 动画循环
Scratch 中的循环被减慢以允许简单的动画。让我们测量重复移动块 10 次的时间。
总时间为 0.32 秒。因此,循环时间为 32 毫秒,⼤致相当于每秒 30 帧。
2.14.2 空循环
空循环重复 10 次需要多⻓时间?时间太短,⽆法测量。即使我们增加到1000次,测量的时间仍然显⽰为0。我们需要重复循环100万次,才能测量⼀些东西。总时间为 1.2 秒。因此执行空循环只需要 1.2 us。
2.14.3 简单赋值
当添加⼀组阻⽌时间增加到 2 我们。我们得出结论,单独阻塞的集合需要 0.8 us。
逐块更改需要相同的时间,⼤约 0.8 us 。
2.14.4 数学运算
将add块放⼊set 以阻⽌循环执行时间变为 3 us。因此,我们得出结论,添加块需要 1 us。
2.14.5 字符串操作
⼀个简单的字符串运算与数学运算所⽤的时间⼤致相同。访问字符串中的索引字⺟需要 1.2 us。
然⽽,连接块需要复制字符串。随着字符串变⻓,此操作需要越来越多的时间。我们将重复次数减少到 100000。在这个任务中,我们将字⺟“x”添加到字符串变量中。字符串⻓度从 1 到 100000 不等。平均字符串⻓度为 50000。现在平均连接操作需要 8 us。
2.14.6 定时器的分辨率
定时器的分辨率是多少?它有微秒分辨率吗?
事实上现在。 Scratch计时器是⼀个⾮常低分辨率的计时器。为了测量其分辨率,我们将所有计时器值记录在⼀个列表中。
当记录 100000 次值时,我们得到以下值:
增量为 54、47、38、45、43、36、37 毫秒。这是⼀个⾮常粗糙的计时器,我们在进行测量时必须考虑到这一点。
暂无评论内容