相关疑难解决方法(0)

在rails中渲染json的最快方法是什么?

我正在优化我们的Rails应用程序中的一些慢速事务,并且我看到了渲染JSON视图所花费的大量时间:

Rendered welcome/index.json.rabl (490.5ms)
Completed 200 OK in 1174ms (Views: 479.6ms | ActiveRecord: 27.8ms)
Run Code Online (Sandbox Code Playgroud)

假设API调用正在返回它需要返回的数据,那么在rails中呈现JSON的最快方法是什么?

我们使用Rabl是因为它能够轻松共享代码,但我们并不依赖它.

json ruby-on-rails ruby-on-rails-3

44
推荐指数
3
解决办法
2万
查看次数

使用Oj JSON解析器无法获得性能改进

根据https://www.ruby-toolbox.com/categories/JSON_Parsers,我应该在使用Oj序列化哈希时获得疯狂的加速.我已经安装了最新的gem,将它包含在我的Gemfile中,运行bundle install,并且可以确认它已经被使用了.如何_know_哪个JSON渲染器在我的Rails 3应用程序中处于活动状态?但是,渲染JSON响应绝对没有加速.

在库中,我使用Ruby的mysql模块查询遗留的MySQL数据库.我将字符串转换为值,并返回一个哈希数组.这很好用,大约需要1.5到2秒.它应该在这里检索一大块数据.

CONTROLLER

@data = Gina.points(params[:project], params[:test],
    session[:username], session[:password])
respond_to do |format|
    format.html { render :text => @data }
    format.json { render :json => @data } # :text => MultiJson.engine
end
Run Code Online (Sandbox Code Playgroud)

图书馆

dbh = Mysql.real_connect(@@host, u, p)
res = dbh.query("SELECT * FROM #{d}.#{t}")
    @data = []
    res.each_hash do |row|
    obj = {}
        row.each_pair do |k, v|
            v.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? obj[k] = v : obj[k] = v.to_f
        end
    @data << obj
end
Run Code Online (Sandbox Code Playgroud)

我的问题是'render:json'部分.对于大约1.5 MB的数据,这可能需要大约8或9秒.在较大的数据集(3.5 …

json ruby-on-rails

5
推荐指数
1
解决办法
2749
查看次数

标签 统计

json ×2

ruby-on-rails ×2

ruby-on-rails-3 ×1