Есть ли замена ActiveRecord для to_xml, которая быстрее? - PullRequest
1 голос
/ 23 января 2010

У меня есть массив с большим количеством элементов (~ 400 элементов) объектов ActiveRecord, которые мне нужно преобразовать в XML. Для удобства я использовал array.to_xml, но он очень медленный - около 20 секунд, когда сервер занят, и около 5 секунд в режиме ожидания.

Я только что провел несколько тестов, пока сервер не работал, и обнаружил, что:

  • запрос ActiveRecord (в комплекте с двухуровневым: include) занимает в среднем около 0,3 с.
  • преобразование этого результирующего набора в XML занимает в среднем около 4,9 с. 4,86 с это время процессора пользователя.

Есть ли замена для Builder :: XmlMarkup, которая повысит скорость to_xml? Или мне придется что-то закатывать?

Ответы [ 2 ]

1 голос
/ 24 января 2010

Следующая ссылка требует увеличения скорости в 2 - 3 раза. Это не капля замены, а метод, который используется для построения структуры, которая будет проходить to_xml быстрее .. Более быстрые альтернативы ActiveRecord :: Base.to_xml (Rails Performance Series)

0 голосов
/ 12 февраля 2010

Вы могли бы также хотеть проверить http://github.com/rti/FastXml

Это простой плагин Rails, который заменяет Array # to_xml и ActiveRecord :: Base # to_xml. Он использует гем 'libxml-ruby' (который является нативной привязкой к libxml) для генерации документов.

...