Timer:tc

lang er <>
Mon Aug 28 11:32:48 CEST 2006


2006/8/28, Ulf Wiger (TN/EAB) <>:
>
>
> I usually write a benchmark loop allowing me to measure over enough
> iterations to bring the times into at least hundreds of milliseconds or
> seconds. Then I repeat several times and take the lowest value (least
> amount of interference). Then (of course), I divide the time by the
> number of iterations.
>
> I also usually repeat the procedure with an empty loop, and calculate
> the difference.
>
> It's reasonable to spawn a new process for each iteration, to make sure
> that the measurement doesn't start with lots of garbage on the heap.
>
> BR,
> Ulf W
>
> > -----Original Message-----
> > From: 
> > [mailto:] On Behalf Of
> > Matthew Sackman
> > Sent: den 28 augusti 2006 10:06
> > To: 
> > Subject: Re: Timer:tc
> >
> > On Mon, Aug 28, 2006 at 11:52:26AM +0800, lang er wrote:
> > > So why:
> > > Erlang (BEAM) emulator version 5.5 [source] [async-threads:0] [hipe]
> > >
> > > Eshell V5.5  (abort with ^G)
> > > 1> timer:tc(count_chars,file, ["gc.txt"]).
> > > {1173,116}
> >
> > File has to be fetched from harddisc, so will cost time.
> >
> > > 2> timer:tc(count_chars,file, ["gc.txt"]).
> > > {375,116}
> >
> > Now file is cached in RAM by OS so access is much faster.
> >
> > > 3> T1 = erlang:now(),
> > > 3> count_chars:file("gc.txt"),
> > > 3> T2 = erlang:now(),
> > > 3> Time = timer:now_diff(T2, T1).
> > > 464
> >
> > Oh. Unknown - someone who knows Erlang much better than I
> > will have to answer that. OTOH, 464 isn't much higher than
> > 375 - these are microseconds. My guess is that it's
> > experimental variance - how repeatable are these numbers? Do
> > it 10 times both methods, both orderings and average. For
> > most functions, the cost of the function itself will be much
> > greater than the cost of the function invocation so the
> > expense of the apply in :tc/3 won't feature for any function
> > that does any "real" work(!)
> >
> > Matthew
> > --
> > Matthew Sackman
> >
> > BOFH excuse #259:
> > Someone's tie is caught in the printer, and if anything else
> > gets printed, he'll be in it too.
> >
>
Yes, certainly I should do like this.
Are there any facility like ruby's bm?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20060828/e6872ed1/attachment.html>


More information about the erlang-questions mailing list