Skip to content

timing a function

10 messages · pdb, mohamed.lajnef at inserm.fr, Joris Meys +4 more

#
Hi,

? proc.time() for more help

regards
Ml

pdb <philb at philbrierley.com> a ?crit?:
12 days later
#
On 2010-05-17 10:49, Gustave Lefou wrote:
No. You should be careful in your use of '=' which is only allowed at 
top level.

Try
  system.time(y <- f(x))

and see ?"=".

  -Peter Ehlers
#
On Mon, May 17, 2010 at 6:24 PM, Peter Ehlers <ehlers at ucalgary.ca> wrote:

            
Ah ha. That explains the curly brackets I saw in a posting with
system.time on stack overflow just now:

 system.time({y=f(x)})

 works as expected since the {} pair make a new code block. Also you
can then time more than one statement:

 system.time({y=f(x);z=g(y)})

 - gives the total time for f(x) and g(y).

Barry
#
You could also put the call to system.time inside the function itself:

f = function(x) {
    system.time({
        ... #function's code
        ret_val = ...
    }); flush.console();
    return ret_val;
}

i s'pose you'd miss out on the time taken to jump to the function code,
return the value, etc, but for functions that are heavy at all, that
wouldn't trip you up.

allie
On 5/17/2010 2:06 PM, Barry Rowlingson wrote: