使用Ruby最需要注意的一点就是效率:因为Ruby执行的效率本身比较慢,所以代码选择很重要。
我们可以多使用Benchmark测试效率,以寻找高效的实现,尤其是对于频繁执行的代码。
一、gsub vs tr
require 'benchmark'
n = 100000
a = "abcd\nef" * 10
Benchmark.bm { |x|
x.report("gsub") {
for i in 1..n
a.gsub(/\n/, " ")
end
}
x.report("tr") {
for i in 1..n
a.tr("\n", " ")
end
}
}
执行结果如下:
user system total real
gsub 2.120000 0.060000 2.180000 ( 2.231045)
tr 0.270000 0.010000 0.280000 ( 0.277447)
两者效率差距明显。
二、<< vs +=
require 'benchmark'
a = ""
Benchmark.bm { |b|
b.report("+=") {
100000.times { a += "foo" }
}
b.report("<<") {
100000.times { a << "foo" }
}
}
执行结果如下:
user system total real
+= 87.390000 9.870000 97.260000 ( 99.785254)
<< 0.030000 0.000000 0.030000 ( 0.036386)
两者效率相差巨大。
分享到:
相关推荐
`fast-ruby` 结合了像`Benchmark`模块、`ruby-prof` 和 `pry-byebug` 等工具,教你如何进行代码分析和性能测试。 8. **块和上下文传递** 使用块和Proc对象时,理解闭包行为和上下文关系是关键。`fast-ruby` 展示了...
他向我们展示了许多可以加快 Ruby 代码运行速度的习惯用法。 他启发我将这些记录下来,让更多人知道。 我尝试链接到真正的提交,以便人们可以看到这在现实世界中确实有好处。 这并不意味着您总是可以盲目地将一个...
我开始这个项目是为了让我轻松地测试使用各种ruby http客户端的不同设置和不同方式。 要运行它,只需克隆该存储库并在其上运行bundle install 。 然后,您可以针对任意URL调用bin/benchmark 。 运行bin/benchmark ...
在Ruby中,`Benchmark`模块允许我们衡量代码执行的时间,以便于比较不同实现的性能。例如,通过对比`gsub`和`tr`方法替换字符串中的特定字符,我们可以发现`tr`方法在效率上优于`gsub`,这对于大量处理字符串的场景...
使用Benchmark IPS来计算CPU /速度结果。 截屏 要求 Ruby 设置 要安装,请运行: git clone https://github.com/bkuhlmann/benchmarks.git cd benchmarks git checkout 0.16.0 bin/setup 用法 每个基准都是可...
Ruby的Benchmark模块可以帮助测量代码执行速度。 10. 压缩包文件"testing-master"可能是一个Git仓库的克隆,其中包含了测试相关的代码和资源。通常,这样的文件结构会包含README文件、源代码文件、测试文件以及可能...
9. **速度**:minitest运行速度快,对于大型项目,快速的测试循环能提高开发效率。 10. **兼容性**:minitest兼容Ruby的其他测试框架,如Test::Unit,使得迁移成本降低。 在实际项目中,开发者可以通过`require '...
5. **性能测试**:除了基本的单元测试,minitest.cr还提供性能测试工具,如`Benchmark`模块,可以帮助开发者评估代码的性能瓶颈。 6. **异步测试**:考虑到Crystal支持并发编程,minitest.cr也提供了异步测试的支持...
Green Button Data是一个Ruby宝石,可以使用Green Button API并非常快速地解析Green Button数据XML模式。 它使用事件驱动的SAX解析器来解析XML数据,而不在内存中构建整个DOM。 在2.3 GHz Core i7处理器上,该gem...
除了少数例外, edn_turbo提供了与edn gem相同的功能,但是由于edn_turbo解析器是用C ++实现的,因此速度要快一个数量级。 一些快速示例运行以比较使用edn和edn_turbo读取文件的时间输出(请参阅): irb(main):...
4. 使用 `make` 命令编译源代码,生成 `redis-server`、`redis-cli`、`redis-benchmark` 和 `redis-stat` 四个可执行文件。 - `redis-server`:Redis 服务器守护进程。 - `redis-cli`:Redis 命令行工具。 - `...
工厂机器人仪器 用于基准测试,跟踪和调试... 提示:运行FactoryBot.benchmark_all 。 对数据库状态的更深入了解:通过跟踪工厂bot和SQL调用,您可以更深入地了解测试中实际创建的内容,从而帮助您更快地调试问题。
2. **多语言支持**:虽然主要用Java编写,但Vert.x也支持其他JVM语言,如JavaScript、Ruby和Groovy等。 3. **模块化**:Vert.x允许开发者将功能分解为独立的模块(称为“verticles”),这些模块之间通过消息传递...
【puffin_bench】是一个性能基准测试工具,主要用于比较不同编程语言的执行效率。它通过自动化脚本简化了安装和...同时,puffin_bench的源码也是一个很好的学习资源,展示了如何跨多种语言编写和执行通用的代码测试。
在Windows上运行Redis需要考虑一些与Linux不同的事项,例如Windows服务的配置、防火墙规则、以及可能需要的依赖库(如msvcrt-ruby187.dll)。通常,用户会使用`redis-server.exe`启动服务器,用`redis-cli.exe`进行...
test test:integration test:recent test:benchmark test:plugins test:uncommitted test:functionals test:profile test:units它将任务缓存到.rake_tasks~文件,这使得从Ubuntu rake的默认完成速度更快。...