Gee*_*cko 5 ruby performance profiling
我编写了一个Ruby应用程序,它从不同格式的源,html,xml和csv文件中解析大量数据.如何找出代码中哪些区域占用时间最长?
有没有关于如何提高Ruby应用程序性能的好资源?或者您是否遵循始终遵循的任何性能编码标准?
例如,你总是加入你的字符串
output = String.new
output << part_one
output << part_two
output << '\n'
Run Code Online (Sandbox Code Playgroud)
或者你会用吗?
output = "#{part_one}#{part_two}\n"
Run Code Online (Sandbox Code Playgroud)
Chi*_*tan 10
好吧,有一些众所周知的做法,如字符串连接比"#{value}"慢,但为了找出脚本消耗大部分时间或超过需要的时间,你需要进行性能分析.有一种名为ruby-prof的红宝石.探查器甚至可以引起您可能很少发生的性能问题.我一直在使用它,发现它非常有用.以下是其官方网站上的一些信息
ruby-prof是Ruby的快速代码分析器.其功能包括:
速度 - 它是C扩展,因此比标准Ruby分析器快许多倍.
模式 - Ruby prof可以测量许多不同的参数,包括调用时间,内存使用和对象分配.
报告 - 可以生成文本和交叉引用的html报告
Flat Profiles - 类似于标准Ruby Profiler生成的报告
图形配置文件 - 类似于GProf,它们显示了方法运行的时间,调用它的方法以及调用的方法.
调用树配置文件 - 以适合KCacheGrind配置文件工具的calltree格式输出结果.
线程 - 支持同时分析多个线程
递归调用 - 支持分析递归方法调用