问题描述
我目前正在使用SwiftForth寻找一种方法来测量一个单词执行所花费的时间。我使用的形式是“计数器”,然后是“计时器”:
counter insert_word_here timer
这将立即输出运行单词所需的时间(以微秒为单位)。有什么办法可以防止立即输出此整数,以便将其存储在堆栈中?
解决方法
timer
在SwiftForth中的实现方式类似于
: timer \ t0 -- ;
counter swap - u.
;
只需定义一个没有u.
的单词,经过的时间(以毫秒为单位)就会留在堆栈上。
: timer-ms \ t0 -- t-elapsed
counter swap -
;
我没有SwiftForth,但是在我发现的页面上将计时器定义为示例。我认为这应该可行,但我无法对其进行测试。