gpt4 book ai didi

Ruby GServer 性能

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:58 25 4
gpt4 key购买 nike

我通过实现最基本的服务器来测试 GServer 的性能,并检查它每秒可以处理多少请求。结果是 81。与我最基本的 TCPSocket 服务器可以处理的每秒 9900 个请求相比,这是非常慢的。是我做错了什么还是 GServer 真的这么慢?

客户端实现:

require 'socket'
tStart = Time.now
u = 0
while Time.now - tStart<5
socket = TCPSocket.open('localhost', 1234)
socket.puts 'a'
socket.gets
socket.close
u += 1
end
puts u.to_s

GServer 实现:

require 'gserver'
class JServer < GServer
def initialize(*args)
super(*args)
end

def serve( io )
io.gets
io.puts( 'a' )
end
end
server = JServer.new(1234)
server.start
loop { break if server.stopped? }

TCPSocket 服务器实现:

require 'socket'
server = TCPServer.open(1234)
loop {
client = server.accept
puts client.gets
client.puts( 'a' )
client.close
}

最佳答案

通过替换

,你应该得到显着的加速(从我的测试中大约 30 倍)

loop { break if server.stopped? }

server.join

也就是说,GServer 使用线程,并且可能比单线程的基于事件的服务器慢。

关于Ruby GServer 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com