查看: 2730|回复: 4

[已经解决] 有没有什么可以测试一段代码运行效率的方法

[复制链接]
梦石
0
星屑
1957
在线时间
410 小时
注册时间
2018-9-25
回帖
25
发表于 2020-6-1 22:20:58 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我在论坛搜索到一个,不过感觉不太行
  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的缘故,所以比较低,而且多次测试出来的结果跳动还挺大的,这样的话一些不怎么影响效率的代码就对比不出来了。
不知道有没有别的方法测试效率?
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2020-6-1 23:00:56 | 显示全部楼层
执行1000次看看花了多久?
  1. t = Time.now
  2. 1000.times do
  3.   # 测试代码
  4. end
  5. p Time.now - t
复制代码

点评

说明你的代码本身执行的时间就不稳定啊……  发表于 2020-6-2 20:27
就算这样感觉还是不大行,重复几次测试出来结果波动太大了,不稳定,不好比较  发表于 2020-6-2 09:43

评分

参与人数 1赞 +1 收起 理由
Cupidk爱呗茶 + 1 我很赞同

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2020-6-1 23:51:34 | 显示全部楼层
本帖最后由 KB.Driver 于 2020-6-1 23:55 编辑

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

[pre lang="ruby"]
require 'benchmark'
Benchmark.bmbm do |x|
  x.report { # 在这里写想要测试效率的代码 }
end
[/pre]

QQ截图20200601235315.jpg

一般只看第二次的结果就可以了
从图中可以看出,"x"*1000比1000.times{ s = (s || "") + "x" }快得多
用头画头像,用脚写脚本
回复 1 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部