Project1

标题: 有没有什么可以测试一段代码运行效率的方法 [打印本页]

作者: adahs    时间: 2020-6-1 22:20
标题: 有没有什么可以测试一段代码运行效率的方法
我在论坛搜索到一个,不过感觉不太行
  1. t = Time.now
  2. a = 0
  3. loop do
  4.    #测试的代码
  5.    a += 1
  6.    t2 = Time.now
  7.    break if t2 - t > 1/60
  8. end
  9. p a
复制代码
我不添加其他代码测试出来,每1/60秒(即一帧)平均在六七百的样子,可能是每次循环都运行了一次t2=Time.now的缘故,所以比较低,而且多次测试出来的结果跳动还挺大的,这样的话一些不怎么影响效率的代码就对比不出来了。
不知道有没有别的方法测试效率?

作者: guoxiaomi    时间: 2020-6-1 23:00
执行1000次看看花了多久?
  1. t = Time.now
  2. 1000.times do
  3.   # 测试代码
  4. end
  5. p Time.now - t
复制代码


作者: KB.Driver    时间: 2020-6-1 23:51
本帖最后由 KB.Driver 于 2020-6-1 23:55 编辑

在电脑上安装一个ruby解释器
安装完后打开运行(Win+R),输入irb

RUBY 代码复制
  1. require 'benchmark'
  2. Benchmark.bmbm do |x|
  3.   x.report { # 在这里写想要测试效率的代码 }
  4. end




一般只看第二次的结果就可以了
从图中可以看出,"x"*1000比1000.times{ s = (s || "") + "x" }快得多




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1