Common Lisp 提供了一个time
宏来找出一个表单需要多长时间执行,并将信息打印到跟踪输出:
time评估当前环境中的形式(词汇和动态)。... time打印各种计时数据和其他信息以跟踪输出。打印信息的性质和格式是实现定义的。鼓励实现提供诸如经过的实时、机器运行时间和存储管理统计等信息。
例如:
(time (length (make-array 1000000)))
Real time: 0.0140014 sec.
Run time: 0.0 sec.
Space: 4000008 Bytes
GC: 1, GC time: 0.0 sec.
有没有办法收集这些参数并将它们逐步推送到某个堆栈或列表中并从函数中返回?