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