数据都是在我的机器上测试所得,我的机器配置:AMD athlon 64 x2 Dual 4000+ 2.11Ghz,1.87G内存。cruby版本是1.8.6,jruby是1.1RC3。操作系统是xp sp2。
1、将繁忙的循环放在内层,比如下面的代码:
a=0
for i in 0..1000
for j in 0..10
a+=(i+j)
end
end
替换成:
for j in 0..10
for i in 0..1000
a+=(i+j)
end
end
cruby提升15%左右,而jruby提升30%以上。
2、乘法运算换成幂运算,cruby降低了200%以上,jruby仅降低30%。也就是说幂运算尽量换算成乘法运算。结论:幂运算换成乘法运算,乘法运算换成加法运算,多数情况下都能对性能有所提高,但请以实际测量为准。
3、100*2 替换成 100<<1,jruby提升8左右%,c ruby提升在0到3%左右。结论:乘以2或者除以2操作可以替换成位移操作,这个调整对性能提高有限,可能以降低代码可读性为代价。
4、字符串累积 a+="abc" 替换成 a<<"abc" c ruby提升接近100%,jruby提升97%
5、将case...when...end语句替换成if...elsif...end语句,cruby没有明显变化(甚至有所降低),而
jruby却提高15%左右。同时,jruby的case...when...end语句的效率比cruby快上60%,if...elsif...
end语句比cruby快上50%。结论:使用cruby,用case...when语句为好,而jruby则尽量使用if...elsif
6、将case语句中的频率比较高的分支提前,cruby提升15%左右,jruby也是如此。将if...elsif...end语句中的频率
比较高的部分提前,jruby提升比较少,大概在5%左右,而cruby可以达到10%。。结论:尽管频率高的语句提前,可以适当提升性能,但可以看到也
是有限的,分支语句的顺序不能仅仅考虑频率,更应该兼顾逻辑,维持在同一个抽象层次上。
7、任何一次代码调整,请都要测量一下,这些Tip仅仅是我在我的机器环境下的测试结果。这些调整策略对其他语言也大多有效,我是在读了《代码大全2》代码调整一章后做的测试,并应用到我的代码中了。
分享到:
- 2008-03-27 09:49
- 浏览 2184
- 评论(6)
- 论坛回复 / 浏览 (5 / 2976)
- 查看更多
相关推荐
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码
简介 Ruby On Rails 框架自它提出之日...Rails 是一个真正彻底的 MVC(Model-View-Controller) 框架,Rails 清楚地将你的模型的代码与你的控制器的应用逻辑从 View 代码中分离出来。Rails 开发人员很少或者可能从未遇到
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
ruby源代码 ruby源代码 ruby源代码 ruby源代码3
Ruby性能测试是软件开发过程中一个至关重要的环节,尤其是在使用Ruby这种动态编程语言时。它确保了代码在实际生产环境中的高效运行,避免了资源浪费和潜在的性能瓶颈。本资料包详细介绍了Ruby性能测试的各个方面,...
Ruby源代码是实现这一语言的底层逻辑和功能的程序,通过阅读和分析Ruby源代码,我们可以深入理解其工作原理,这对于学习和优化Ruby应用程序至关重要。 Ruby的设计哲学是“程序员的生产力优先”,因此它的语法易于...
6. **性能优化**:虽然收集覆盖率数据可能会对测试速度产生影响,但 Coco 在设计时已经尽可能地优化了性能,确保在不影响开发效率的前提下提供准确的覆盖率数据。 在使用 Coco 过程中,开发者通常会遵循以下步骤: ...
标题“ruby测试代码6”和描述“ruby测试代码6”暗示了这是一个关于使用Ruby语言进行的测试代码项目,可能涉及到不同的模块或者数据结构。标签“ruby测试代码6”进一步确认了这一主题。从压缩包子文件的文件名称列表...
通过SciTE(一个源代码编辑器)运行Ruby脚本,可以显著减少资源消耗和脚本执行时间,从而获取更准确的性能数据。此外,作者改进了测试结构,将监控点的控制从纯脚本控制转变为由Excel控制,这样不仅使性能测试的配置...
rubyPHP的高性能体现在以下几个方面: 1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面。rubyPHP的页面缓存是自动进行的,...
3. **代码级别的性能剖析**:Skylight能够显示代码执行的热点,帮助开发者识别哪些方法或代码块是性能瓶颈,从而有针对性地进行优化。 4. **操作指导**:Skylight不仅提供数据,还会给出改善性能的具体建议,例如...
5. 了解性能优化:通过分析源代码,可以学习如何编写高效的Ruby代码,避免不必要的计算和内存消耗。 总的来说,深入研究Ruby源代码不仅能提升编程技巧,还能帮助你成为一个更全面的开发者,更好地理解和应对各种...
3. **代码优化**:这是提高性能最根本也是最有效的方式。通过对代码进行优化,减少不必要的内存消耗和计算负担,可以显著提升应用的整体性能。 #### 避免内存密集型Rails特性 对于Rails而言,内存管理尤为重要。...
方法是类或模块中定义的行为,Referral能找出方法的调用位置和实现,这对于理解代码流程和优化性能至关重要。变量在Ruby中分为局部变量、实例变量、类变量和全局变量,Referral能够追踪它们的使用情况,有助于识别...
在Ruby编程中,理解代码间的依赖关系是优化和维护项目的关键。Rubrowser就是这样一款工具,它能够帮助开发者快速定位和识别代码中的依赖关系,从而提高工作效率。通过图形化的方式,开发者可以清晰地看到各个类和...
6. **性能优化**:如何通过分析和优化代码来提高Ruby程序的性能,可能是本书的一部分内容。 这两本书结合,不仅能够帮助初学者快速掌握Ruby编程,也能为有经验的开发者提供深入理解语言特性和最佳实践的机会。通过...
在"Ruby Cookbook Source"这个压缩包中,我们可以期待找到一系列的Ruby代码示例,这些示例可能涵盖了各种常见的编程问题和最佳实践。Ruby Cookbook通常会包含解决特定问题的代码片段,帮助开发者更好地理解和应用...
本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习Rails的宝贵资源,帮助初学者快速掌握这个强大的框架。 1. **Rails基础知识**: - MVC架构:Rails的核心设计模式,模型负责数据处理,视图负责展示,控制器...
"ruby测试代码1"可能指的是一个具体的测试用例或者测试框架的实例,用于验证Ruby程序的功能和性能。Ruby提供了多种测试工具,如MiniTest、RSpec和Cucumber等,它们各自有其特点和适用场景。 MiniTest是Ruby标准库的...