我想捕获对time宏调用的结果,以便收集多个测量并处理它们.我尝试在本地setf标准输出并将其重定向到字符串,但它不适用于time宏.也许这是错的,但我尝试的是:
(with-output-to-string (str)
(let ((*standard-output* str))
(time (test-with-size 40))))
Run Code Online (Sandbox Code Playgroud)
问题:
time?slime-profile-report命令的输出吗?我想要实现的是测量算法的运行时间,因为输入的大小增加,因此对于每个输入大小(范围从1到100),我将测量很多次并保持平均值.然后我想绘制结果.绘图很简单,我在Cliki中找到了很多方法,但我如何收集结果呢?
我正在使用CLISP和CCL.
编辑:保罗内森指出time宏观输出*trace-output*是一个解决方案.我想要一个更好,更简单的解决方案,因为有了这个,我必须解析一个特定于实现的跟踪.
Rai*_*wig 10
如果要捕获文本,则需要使用正确的流.ANSI CL标准说TIME打印到跟踪输出.
所以这会给你一个字符串的文本.
(with-output-to-string (*trace-output*)
(time (sin 40.0)))
Run Code Online (Sandbox Code Playgroud)
您也可以使用时间原语编写自己的宏.请参见25.1.4.3内部时间以获取数字数据.
| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |