如何在循环内找到每个调用使用的 CPU 时间?
how to find CPU time used by each call when inside a loop?
我正在学习 Maxima,但很难找到如何在循环构造中获取调用集成时使用的 cpu 时间。
问题是函数 time(%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,windows7。
千里马版本:5.36.1
口齿不清:SBCL 1.2.7
我一直在寻找类似 Mathematica 的 AbsoluteTiming 函数的东西。
也许您需要的功能是elapsed_real_time
.
编辑:您可以这样使用它:
for i ...
do block ([t0, t1],
t0 : elapsed_real_time (),
integrate (...),
t1 : elapsed_real_time (),
time[i] : t1 - t0);
而不是经过的实时时间,在我的 GCL maxima 上似乎 return
以秒为单位的绝对实时,试试 lisp 函数
GET-内部-运行-TIME
您可以通过
从 Maxima 命令行调用
?get-internal-运行-time();
这应该 return 运行 在任何常见的 lisp 系统上。在协鑫,
以每秒 100 个为单位。
我正在学习 Maxima,但很难找到如何在循环构造中获取调用集成时使用的 cpu 时间。
问题是函数 time(%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,windows7。 千里马版本:5.36.1 口齿不清:SBCL 1.2.7
我一直在寻找类似 Mathematica 的 AbsoluteTiming 函数的东西。
也许您需要的功能是elapsed_real_time
.
编辑:您可以这样使用它:
for i ...
do block ([t0, t1],
t0 : elapsed_real_time (),
integrate (...),
t1 : elapsed_real_time (),
time[i] : t1 - t0);
而不是经过的实时时间,在我的 GCL maxima 上似乎 return 以秒为单位的绝对实时,试试 lisp 函数
GET-内部-运行-TIME
您可以通过
从 Maxima 命令行调用?get-internal-运行-time();
这应该 return 运行 在任何常见的 lisp 系统上。在协鑫, 以每秒 100 个为单位。