微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – rails – 数字比较与文本比较的速度要快得多

我的模型中有一个非常昂贵的方法,用于比较许多项的数组的文本项.

它运行得很慢.如果我使用关系数据库表并仅比较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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐