衡量执行时间

时间:2019-10-12 23:21:58

标签: forth gforth

如何衡量我的程序的执行时间?我发现了这一点,但它对我不起作用,因为我的程序需要堆栈中的一些数字才能工作,所以我的程序与该解决方案相互干扰(据我了解,因为当我尝试>>> try: ... requests.get('https://does-not-exist') ... except requests.exceptions.ConnectionError as error: ... print(error.request.url) ... https://does-not-exist/ 或{{1时}}无效。...)

time: myfunc

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

打勾'将在调用time:之后立即解析文本。因此,对于带有参数的调用,应为num1 num2 time: myfunc

此外,滴答声还将在运行时解析输入流。如果您在单词定义中嵌入了对time:的调用,它将尝试从输入流中获取该单词的执行权,而不是紧接time:之后的单词的执行权。使用[']在编译时获得下一个单词的xt,并将该xt作为参数传递给time:

: time ( xt -- )
  utime 2>R EXECUTE
  utime 2R> D-
  <# # # # # # # [CHAR] . HOLD #S #> TYPE ."  seconds" ;

: foo 0 1000000 0 do i + loop drop ;

: bar num1 num2 ['] foo time ; \ pass the foo's xt as argument to time

请注意,'中没有time调用,EXECUTE将从堆栈中获取令牌。