作者wwwc (secret)
看板Ruby
標題[問題] 傳輸時間非線性
時間Fri Jun 20 16:51:30 2008
環境:
server1: ruby 1.8.6 (2007-09-24 patchlevel 111) [amd64-freebsd7]
server2: ruby 1.8.5 (2006-08-25) [amd64-freebsd6]
狀況:
server1傳送不同長度的資料給server2
但資料長度與傳輸時間呈現非線性的關係
我想不出合理的解釋
附錄:
code on server1:
require 'socket'
1.upto(10) {|i|
text = "a" * i*(10**7)
start = Time.now
bob = TCPsocket.open(ip, port)
bob.write("#{text}\n")
bob.close
puts Time.now - start
}
code on server2:
require 'socket'
server = TCPServer.new(ip, port)
while (alice = server.accept)
start = Time.now
tmp = alice.gets
puts Time.now - start
end
#無論server1或server2印出的結果 傳輸的資料長度與時間 都呈現很明顯的非線性關係
#Why?
#Thanks.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.16.211
※ 編輯: wwwc 來自: 140.109.16.211 (06/20 17:01)
→ shelary:1.資料量太小.不足以算出客觀數據 06/20 17:45
→ shelary:2.網路塞車或CPU佔用或其它與Ruby本身無關的問題 06/20 17:46
→ shelary:你應該是要送個 5MB 和 10MB 然後再比較 2 者 06/20 17:47
→ godfat:你的 server1 根本就是 client 吧? 06/20 19:22
→ godfat:不是很明白你想表達什麼?有統計報表嗎? 06/20 19:22
→ wwwc:server1是client沒錯 只是取個名字 06/20 22:22
→ wwwc:這樣的資料量已經要傳送好幾十秒甚至超過一分鐘 還不夠大嗎? 06/20 22:24
→ wwwc:已排除CPU佔用的問題 明天我把跑的數據貼上來 謝謝各位幫忙! 06/20 22:27
→ wwwc:也不是網路塞車 因為這兩台電腦都在實驗室內 狀況可以掌握 06/20 22:40
推 godfat:那我另外懷疑是否有防火牆?router? 06/21 00:45
→ wwwc:回樓上 在相同環境下有用scp傳送大檔案測試 很順且呈線性關係 06/21 12:36