标签:mysql sql ruby-on-rails ruby-on-rails-3 ruby
我的模型中有一个非常昂贵的方法,用于比较许多项的数组的文本项.
它运行得很慢.如果我使用关系数据库表并仅比较ID,那么我的方法运行速度会快得多吗?
/编辑
我试图对以下内容进行基准测试:
@matches = @location_matches.sort do |l1, l2|
l1.compute_score(current_user) <=> l2.compute_score(current_user)
end
@matches.reverse!
解决方法:
简而言之,我猜数字比较会更快,因为比较字符串是关于比较字符后的字符(建议:在Ruby使用符号时,你可以比较快).
无论如何,你会发现there,你需要的一切基准和获得你的详细结果.
代码示例:
require 'benchmark'
n = 50000
Benchmark.bm do |x|
x.report("for:") { for i in 1..n; a = "1"; end }
x.report("times:") { n.times do ; a = "1"; end }
x.report("upto:") { 1.upto(n) do ; a = "1"; end }
end
结果:
user system total real
for: 1.050000 0.000000 1.050000 ( 0.503462)
times: 1.533333 0.016667 1.550000 ( 0.735473)
upto: 1.500000 0.016667 1.516667 ( 0.711239)
标签:mysql,sql,ruby-on-rails,ruby-on-rails-3,ruby 来源: https://codeday.me/bug/20190721/1495546.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。