创建Nokogiri :: XML :: Builder对象是一个昂贵的过程吗?

时间:2011-03-22 15:26:59

标签: ruby-on-rails performance nokogiri

我有一个大约1,000,000个ActiveRecord对象的列表,我正在使用Nokogiri构建。现在我在每个对象上调用一个方法来创建一个构建器并返回它。然后我将该构建器编写为已打开的文件:

builder.to_xml

它工作正常,但我想知道我是否可以创建一个空的构建器元素并克隆它(或某些东西,可能与操作一样昂贵)并将其发送到AR实例方法。

1 个答案:

答案 0 :(得分:0)

对于1,000,000个对象,我会研究使用ERB或Erubis来使用手工编码的模板生成XML。

Nokogiri正在动态创建每个元素,与已经知道如何为每个对象做什么的进程的速度相比,这是昂贵的。

Erubis比ERB更快,但ERB是Rails的标准。模板可以互换。

另一个替代方法是查看是否可以让数据库根据查询将所选记录作为XML输出。这将是生成数据文件的最快方法。