On Jun 4, 2009, at 7:51 PM, Dave Thomas wrote:
> But perhaps some real numbers, rather than some genuine concerns,
> would give
> us the data to go on.
So, here are some numbers. This is based on 30,000 tasks split into
300 files. The tasks do nothing but declare a single dependency.
This is against the latest code base that does not do task metadata
recording (i.e. comments and line numbers) unless a -T, -D or -W
option is given.
# USING DESC
[env*]$ time ruby -I../lib ../bin/rake -Rdesc
(in /Users/jim/working/git/rake/x)
real 0m1.779s
user 0m1.553s
sys 0m0.135s
# USING RUBY COMMENTS
[env*]$ time ruby -I../lib ../bin/rake -Rcomment
(in /Users/jim/working/git/rake/x)
real 0m1.623s
user 0m1.467s
sys 0m0.135s
# WITH NO COMMENTS
[env*]$ time ruby -I../lib ../bin/rake -Rnone
(in /Users/jim/working/git/rake/x)
real 0m1.505s
user 0m1.365s
sys 0m0.120s
Turns out the comment version is actually faster (because I'm not
processing the desc command). I imagine the speed of the desc version
could be improved if I made it obey the no task metadata flag.
Running with the -T (and piping all output to /dev/null) shows that
the comment version runs about 1/2 second slower than the desc version
(3.8 vs 3.3 seconds). Given that these cases will be primarily
dominated by the speed of the output, I'm not too worried about a slow
down here.
I don't see any performance reasons to take out Dave's patch.
--
-- Jim Weirich
-- jim.weirich at gmail.com