是否有更快的ActiveRecord to_xml替代品?

时间:2010-01-23 17:07:56

标签: ruby-on-rails xml performance activerecord

我有一个需要转换为XML的ActiveRecord对象的大型数组(~400个元素)。我使用array.to_xml是为了方便,但它很慢 - 服务器忙时约20秒,闲置约5秒。

我只是在服务器空闲时运行一些基准测试,并发现:

  • ActiveRecord查询(包含两个级别:include)平均需要大约0.3秒。
  • 将该结果集转换为XML平均需要大约4.9秒。 4.86s是用户CPU时间。

是否有一个直接替代Builder :: XmlMarkup可以提高to_xml的速度?或者我需要手动滚动吗?

2 个答案:

答案 0 :(得分:1)

以下链接声称速度增加2到3倍。它不是替代品,而是一种用于构建to_xml将更快遍历的结构的技术。Faster alternatives to ActiveRecord::Base.to_xml (Rails Performance Series)

答案 1 :(得分:0)

您可能还想查看http://github.com/rti/FastXml

这是一个简单的Rails插件,它取代了Array#to_xml和ActiveRecord :: Base#to_xml。它使用'libxml-ruby'gem(它是对libxml的本机绑定)来生成文档。