While I still find it disturbing that comments in code will be assumed to be 
task comments, if the performance impact is only there if an option is 
specified requesting task descriptions then my performance concerns are 
definitely lessened.
Still - how is that desc - something that does nothing more than setting a 
string, take more time more than reading a file (a bunch of two line files 
isn't the best test, but you did actually test something so I can't complain 
too much ;>) and running a regexp parse across the caller backtrace?  That 
really doesn't make any sense Jim.

Speaking of the patch - how does it handle it when multiple tasks are created 
on the same line [say in a block iteration]?  If there happens to be a comment 
on the line above they'll all get the same task description?


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Jim Weirich
Sent: Friday, June 05, 2009 10:39 AM
To: Rake Development and Discussion
Subject: Re: [Rake-devel] Rake DSL Commands are no long in top level


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
-- [email protected]

_______________________________________________
Rake-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rake-devel


_______________________________________________
Rake-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rake-devel

Reply via email to