作者wwwc (secret)
看板Ruby
标题Re: [问题] 传输时间非线性
时间Fri Jun 20 22:39:06 2008
※ 引述《wwwc (secret)》之铭言:
: 环境:
: 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.
string_length time(seconds)
10000000 1.446097
20000000 5.63906
30000000 12.596629
40000000 19.164819
50000000 35.540932
60000000 43.151251
70000000 52.863883
80000000 63.990407
90000000 106.629896
100000000 117.847027
很明显不是线性关系
虽然这是只跑十次平均的结果
但之前跑了一百次後也差不多
我找不到合理的解释
已排除CPU忙碌这个原因(有top观察)
趁现在有人帮忙
所以赶紧贴上结果
谢谢各位!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.16.222
※ 编辑: wwwc 来自: 140.109.16.218 (06/21 15:02)