我有某种使用过剩的“主循环”。我希望能够测量渲染一帧需要多少时间。用于渲染帧的时间可能用于其他计算。该功能的使用time
是不够的。
(time (procedure))
我发现有一个函数叫做current-time
. 我必须导入一些包才能得到它。
(define ct (current-time))
其中将 ct 定义为time
对象。不幸的是,我在计划中找不到任何日期的算术包。我看到在 Racket 中有一个叫做的东西current-inexact-milliseconds
,这正是我正在寻找的东西,因为它有纳秒级。
使用时间对象,有一种方法可以使用将其转换为纳秒
(time->nanoseconds ct)
这让我可以做这样的事情
(let ((newTime (current-time)))
(block)
(print (- (time->nanoseconds newTime) (time->nanoseconds oldTime)))
(set! oldTime newTime))
对我来说似乎已经足够好了,只是由于某些原因它正在打印这样的东西
0
10000
0
0
10000
0
10000
我正在使用 opengl 渲染东西,我发现很难相信某些渲染循环需要 0 纳秒。并且每个循环都非常稳定,可以始终花费相同的纳秒时间。