【发布时间】:2018-06-15 18:51:01
【问题描述】:
我目前需要写一些类似于user::time 的东西,但是有一些修改。
修改如下。假设我的新宏名为time-lisp-forms。那我应该可以这样用了。
(defun test (a b)
(let ((c (+a b)))
(time (+ c a))
(time (+ c b)))))
我这样调用宏:
(time-lisp-forms (test 1 2))
那么,它的输出会是这样的:
Total time for (test 1 2) = 5 sec
Time block 1: (+ c a) = 1 sec
Time block 2: (+ c b) = 3 sec
也就是说,我希望对函数的外部调用进行计时,同时能够指出其中我想特别关注的块。
问题是这样的东西是否已经存在。另外,如果我需要实现这个,你会推荐从哪里开始或一些有用的函数/宏。不一定要寻找可行的解决方案,但欢迎指导和指导:)
【问题讨论】:
标签: macros common-lisp