Hongli Lai wrote:
> Bug #496: DRb.start_service(nil) is very slow
> http://redmine.ruby-lang.org/issues/show/496
> 
> Author: Hongli Lai
> Status: Open, Priority: Normal
> 
> On some systems - such as mine - DRB.start_service(nil) is very slow. This is caused by the fact that DRb.open_server calls TCPServer.open(nil, 0).addr[1]. On my system, this takes about 3 seconds, and during those 3 seconds there is 0% CPU usage.
> 
> I suspect it has got something to do with the fact that retrieving the port of a server socket that's bound to 0.0.0.0 is for some unknown reason very slow.
> 
> The problem can be fixed by replacing the following line in drb.rb
> 
>   uri = 'druby://:0' unless uri
> 
> with:
> 
>   uri = 'druby://localhost:0' unless uri

It may be the familiar DNS issue:

$ time ruby -r drb -e 'DRb.start_service("druby://:0")'
ruby -r drb -e 'DRb.start_service("druby://:0")'  0.07s user 0.02s 
system 1% cpu 5.106 total

$ time ruby -r drb -e 'Socket.do_not_reverse_lookup=true; 
DRb.start_service("druby://:0")'
ruby -r drb -e   0.07s user 0.01s system 98% cpu 0.085 total

$ ruby -v
ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407