吴俊杰
程序语言的循环时间是一个程序语言的基本参数,直接影响了程序的执行速度。2013年9月Scratch语言开发团队公布了Scratch2.0的PC版本,与之前的Scratch2.1相比,循环速度有了很大的提升。本文将通过实验比较两个版本的循环时间上的差异。
● 问题的提出
在Scratch1.4中,如果需要开发一个秒表,可使用如图1所示的程序。
我们发现秒表并不像预想的那样,结束程序之后,小猫会说10,而是多出了0.34的误差,这一误差产生的原因是程序完成一个循环需要时间,这个时间在Scratch1.4之下是多少,我们尝试通过实验进行研究。
● Scratch1.4之下的循环时间测定
为了获取数据,在变量菜单中新建一个链表“时间”,并修改程序,将每次循环结束后的时间存储在链表中(如图2)。
将链表输出为TXT文件在Excel进行分析,首先可以通过差值的方法进行分析(如图3)。
此外,我们还可以通过Excel绘制差值结果的图像,并通过拟合直线的方法来分析循环时间的平均值(如图4)。
研究说明,每次循环大约需要0.033秒,并且循环执行的过程中循环时间基本稳定。但是循环内部“等待1秒”和“将计时器加入链表”可能也需要占用一定的时间,因此我们修改了研究工具(如图5)。
实验发现,Scratch1.4的循环时间是0.0252秒,并且是一个稳定的数据,实验原始数据见下表。
Scratch1.4的循环时间测定
循环次数 时间/秒 差值/秒
100 2.51 2.51
200 5.039 2.529
300 7.554 2.515
400 10.125 2.571
500 12.586 2.461
600 15.098 2.512
700 17.613 2.515
800 20.12 2.507
900 22.655 2.535
1000 25.153 2.498
平均值 2.5153
我们发现,由于Scratch1.4的循环时间是一个稳定值,因此我们只需要用1000次循环的时间除以1000就可以比较准确地测定这个数。这个数据看似比较小,但是在计算……