Ruby ActiveRecord +杂种走得很慢
我有一个这样的类:
class Router :: Mongrel::HttpHandler
def process(req, res)
status, header, body = [200, {"Content-type"=>"text/html"}, Model.all.to_xml]
res.start(status) do |head, out|
header.each_pair { |key, value| head[key] = value }
out.write body
end
end
end
它是一个服务器,我在另一端使用 ActiveResource 前端。
每第 3 个请求都非常慢(大约 5 秒,第 1 次和第 2 次还可以,大约 0.01 秒)。 Model.all.to_xml 中的问题(它是 ActiveRecord -> SQLite)。
为什么太慢?仅当我在 Mongrel::HttpHandler 中使用它时才会发生这种情况。 这
100.times do
a = Time.now
Car.all.to_xml
puts "#{Time.now - a}"
sleep(1)
end
总是有效的。
I have a class like this:
class Router :: Mongrel::HttpHandler
def process(req, res)
status, header, body = [200, {"Content-type"=>"text/html"}, Model.all.to_xml]
res.start(status) do |head, out|
header.each_pair { |key, value| head[key] = value }
out.write body
end
end
end
It's an server and I use an ActiveResource front end on the other side.
Every 3rd request is very slow (about 5 seconds, 1st and 2nd is ok, about 0.01 sec). The problem in Model.all.to_xml (it is ActiveRecord -> SQLite).
Why it is too slow? It only happens when I use it in Mongrel::HttpHandler..
This
100.times do
a = Time.now
Car.all.to_xml
puts "#{Time.now - a}"
sleep(1)
end
is always works good.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ActiveRecord::Base.clear_active_connections!解决了问题。
ActiveRecord::Base.clear_active_connections! solved the problem.