こんばんわ、佐藤といいます。
一度にいろんなURLをダウンロードするプログラムを作っているのですが。
20コぐらいのURLを同時にダウンロードしてみたのですが、やたら遅いのは
なぜでしょうか?
Cでマルチスレッドで同じようなプログラムを作った時は、30秒ぐらいで全てをダウンロード
出来ましたが、rubyでこれをやると300秒ぐらいかかります。(WinNT、CPU:MMX200)
また、Freebsdで動かした所200秒ぐらいでダウンロード出来ました(FreeBSD、CPU:Pentiun100)


作ったプログラムのメインの所だけ
Start()

def data_send_recv (i)
	$out[i] = ""
	$count[i] = 0
	while $out2[i] = $sock[i].gets
		$out[i] += $out2[i]
		$count[i] += 1
	end

	$sock[i].close
	print Kconv::tosjis($out[i])
	$nokori -= 1
end

def Start()
	$hoge_list.each do |@hoge
		if $proxy_flg = TRUE then
			send_data = "GET http://" + $hostName + $url1 + @hoge + $url2 + "\n"
		else
			send_data = "GET " + $url1 + @hoge + $url2 + "\n"
		end

		$sock[i] = TCPSocket.open(@host_name, @port)
		$sock[i].write(send_data)
		Thread.start {
			data_send_recv(i)
		}
		sleep(0.1)
		i += 1
	end

	i = 0
	while $mnokori > 0
		print i*2,"秒経過"," 残り銘柄数 ---> ",$nokori,"\n"
		sleep(2)
		i += 1
	end
end

-----------------------------------------------------------
(株)東芝 府中事業所[生資ブ](資管) 佐藤 雄一
   T E L : 042-333-2401
   F A X : 042-340-8005
   e-mail: yuuichi.satoh / toshiba.co.jp
-----------------------------------------------------------