InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性

作者 Werner Schuster 译者 李明(nasi) 发布于 2008年4月7日

领域
架构 & 设计,
语言 & 开发
主题
Ruby ,
调试 ,
Ruby on Rails ,
JRuby ,
编程 ,
性能和可伸缩性
标签
Ruby on Rails ,
Rails ,
Eclipse ,
JRuby ,
RadRails

作为Aptana IDE的一部分,RadRails目前已经发布了1.0版本。作为一直以来流行的Rails开发工具,新版本的RadRails为Ruby和Ruby on Rails的开发者都新增了有用的特性。这里有一个RadRails、Netbeans和CodeGears的3rdRail的特性完全比较,从比较中可以看出RadRails在重构(refactoring)和性能剖析(profiling)方面更胜一筹。另一个RadRails的特性是Rails Shell,它允许用户在Eclipse IDE内部使用Rails命令——可以使用自动补全及其他一些功能。(有一个截屏视频演示了Rails Shell的特性)。

关于这个新发布,我们采访了Aptana的Christopher Williams。Christopher在2007年受雇于Aptana,以继续其在Ruby Development Tools(RDT)上的工作,而RDT则是RadRails的基础。

RadRails1.0支持Ruby代码的性能剖析,可以通过GUI显示每个方法的运行时间和调用图表。Christopher解释了这是如何实现的:

此Profiler是ruby-prof gem的一个简单包装。我们将从ruby-prof的bin脚本中得到的ruby脚本的执行包装起来,并将输出定向到一个临时文件中。然后,当执行结束的 时候,我们通过解析输出并生成调用图表和着重点以供查看。这个目前对JRuby还不支持,因为对于用原生C代码写成的ruby-prof gem来说,Java目前还没有替代品。一旦有了这个替代品,我们就会马上让JRuby也支持这项特性。

如 果要实现这个功能:我们就得修改ruby-prof gem使得它类似于ruby-debug的ruby-debug-ide gem那样工作——至少可以允许对于profiler的远程连接和实时地通过套接字来发送剖析相关的命令(这样我们便可得到快照,而非等到程序结束后再从 输出中获得)。或者我们可以创建一个JRuby兼容的ruby-prof。这实在是取决于用户的需求。这是个标志性的新功能,因此我们也在收集需求以求改 进。

RDT很早就完整支持通过更快的ruby-debug在Eclipse调试器GUI下调试Ruby代码。RadRails也包含了jruby-debug,一个更快的JRuby调试支持的实现:

是的,在RadRails 1.0之中我们已经支持JRuby版本的ruby-debug gem——因此现在有了一个快速的JRuby调试的选择。实际上我们会预装在伴随发布的JRuby中。
在RadRails 1.0的特性列表中将“Rubinius”作为一个支持的Ruby解释器。Christopher解释了这项支持目前的状态:
当前使用Rubinius作为启动Ruby进程的解释器还有诸多限制。当Rubinius成熟之时,就可以 使用它来尝试运行gems甚至Rails。目前还没有真正的Rubinius专署特性(然而也没有任何JRuby或者标准Ruby的专署特性。接下来我们 会尽力做到完全支持每一个解释器。通过JRuby和Rubinius,通常只需要等待新gem或者更新代码来增强其功能)。

如 果大量用户开始尝试使用Rubinius并向我们告知缺少调试器,我们一定会使之集成进来。当我们使用ruby-debug为Ruby创建调试器之时,我 们和Kent Sibilev及Martin Krauskopf(在Sun公司从事Netbeans开发)一起共享我们的代码——这使得大量IDE公用库集成了ruby-debug。因此已经有了大 量的de-facto标准来为RDT/RadRails和Netbeans继承一个调试后端。只需要连接Rubinius的调试器,打开一个套接字并读入 XML命令即可。(如果其他人需要这样的话,请联系我或者Martin。这样可以一举使得Rubinus调试器有效地在Netbeans和 RDT/RadRails上工作)。

公用调试协议实现详见RubyForge的debug-commons项目。InfoQ报道了Rubinius的全速调试器——目前并不支持公用调试协议,因此使用全速调试器的API需要另外的协议后端。

尽管RadRails很明显和Ruby on Rails的开发紧密相连,但是在将来它同样会支持其他的框架:

目前我们还没有关于提供对其他框架支持的强烈需求。很明显我们专注于Rails,但是实际上RadRails是一个全功能的Ruby IDE(通过RDT构建)。如果一个框架变得流行起来,用户提出需要支持它的需求的时候,我们一定会调研。

另外,很多用户正在使用Brad Wilson的HAML和SASS编辑器。不幸的是,最近的发布版破坏了其与RDT的集成,而且Brad没有时间来继续维护和改进。我们正在和他一道将他的编辑器引入RadRails中,这样更有利于以后的维护和改进。

通过Ruby使用EclipseMonkey将RadRails和Aptana脚本化——Christopher讲述了这项特性背后的观点:

当我创建了EclipseMonkey和JRuby之间的集成以后,我希望很多人会关注到,并说“嘿呀,我 现在能用Ruby来为IDE写脚本了!”。然而直到现在,社区对它的接受程度并没有达到我的预期。[..][我了解到]作为一个终端用户,他们可以不需要 编译就能迭代开发一项新特性,而且不需要下载Eclipse SDK,也不需要检出我们全部的源代码,那些让人晕头转向的东西。你仅需要编写Ruby/JRuby代码、运行脚本、编辑它、再运行,诸如此类。通过 DOM我们能够提供一个很小很简单的API,看上去很像Ruby API。

想尝试Aptana和RadRails 1.0或者只是想实际看看其特性的话,请看展示了大量特性的截屏视频

查看英文原文:RadRails goes 1.0 - adds Profiler, CallGraph Analyzer, Rails Shell, etc. 

译者 李明(nasi) 毕业于东北大学,曾供职于百度网页搜索部,从事分布式网络爬虫及其国际化的研发工作。

中文有问题 发表人 vincent xie 发表于
Re: 中文有问题 发表人 vincent xie 发表于
  1. 返回顶部

    中文有问题

    发表人 vincent xie

    radrails1.0有一个严重的bug,打开部分带有中文的ruby代码文件的时候会down掉,
    这个错误实在太低级了。

  2. 返回顶部

    Re: 中文有问题

    发表人 vincent xie

    重新下载Aptana1.1.6,再在新的Aptana上安装RadRails1.0.1,已经没有原来那个错误了。
    Aptana和RadRails还是挺不错的,就是还不够稳定,希望将来的版本可以变得更好些。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。