我正在学习Maxima,但很难找到如何在循环结构内部获取调用集成时使用的cpu时间。
问题是函数时间(%o1)给出了用于计算行%o1的CPU时间。
但是在循环内部,整个循环被视为一个操作。所以我不能用time()来计时单次呼叫。
这是一个例子
lst:[sin(x),cos(x)];
for i thru length(lst) do
(
result : integrate( lst[i],x)
);
我想找到用于每个调用集成的cpu时间,而不是用于整个循环的cpu时间。添加showtime: true$
并没有多大帮助。我需要获取每次调用使用的CPU时间,并将值保存到变量中。
在Maxima中是否有办法找到每个调用用于集成在上述循环中的CPU时间?
使用wxMaxima 15.04.0,Windows 7。 千里马版:5.36.1 Lisp:SBCL 1.2.7
我正在寻找像Mathematica的AbsoluteTiming函数。
答案 0 :(得分:3)
而不是经过实时,这在我的GCL最大值似乎返回 以秒为单位的绝对实时,尝试lisp函数
GET-INTERNAL-RUN-TIME
您可以通过
从Maxima命令行调用获得内部的运行时();
这应该返回任何常见的lisp系统上的运行时间。在GCL, 以每秒100个为单位。
答案 1 :(得分:2)
也许您需要的功能是elapsed_real_time
。
for i ...
do block ([t0, t1],
t0 : elapsed_real_time (),
integrate (...),
t1 : elapsed_real_time (),
time[i] : t1 - t0);