首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到Ruby应用程序中的性能瓶颈?

如何找到Ruby应用程序中的性能瓶颈?
EN

Stack Overflow用户
提问于 2009-01-26 15:15:11
回答 5查看 2.1K关注 0票数 5

我写了一个Ruby应用程序,它可以解析来自不同格式的html、xml和csv文件的大量数据。我如何才能找出代码中哪些部分花费的时间最长?

关于如何提高Ruby应用程序的性能,有没有什么好的参考资料?或者,你有没有任何你一直遵循的性能编码标准?

例如,您是否总是将字符串与

代码语言:javascript
运行
复制
output = String.new
output << part_one
output << part_two
output << '\n'

或者你会使用

代码语言:javascript
运行
复制
output = "#{part_one}#{part_two}\n"
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-26 15:32:12

嗯,有一些众所周知的做法,比如字符串连接比"#{value}“慢得多,但为了找出你的脚本在哪里消耗了大部分时间或超过了所需的时间,你需要进行分析。有一种叫ruby-prof的宝石。分析器可以引起您的注意,甚至是那些很少发生的性能问题。我一直在使用它,并且发现它非常有用。下面是直接从它的official site获取的一些信息

Ruby prof是一个用于

的快速代码分析器。它的功能包括:

Ruby -它是一个C扩展,因此比标准的分析器快很多倍。

Ruby Modes-Ruby prof可以测量许多不同的参数,包括调用时间、内存使用和对象分配。

reports -可以生成文本和交叉引用的html报告

Ruby -类似于标准剖析器生成的报告

图形配置文件-类似于GProf,它们显示一个方法运行多长时间,哪些方法调用它,以及它调用哪些方法。

调用树配置文件-以适合KCacheGrind评测工具的调用树格式输出结果。

threads -支持同时分析多个线程

递归调用-支持分析递归方法调用

票数 10
EN

Stack Overflow用户

发布于 2009-01-26 15:20:14

Stack Overflow用户

发布于 2009-01-26 15:37:21

您可以使用标准Benchmark module测试各个代码段的性能。

你也可以在Ruby的不同实现(如1.9,Rubinius)上测试你的代码,看看这样做是否会加快速度。

当然,如果你的问题本质上是算法问题,那么就没有太多的理由担心像字符串连接速度这样的事情……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/480109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档