0

階層的に編成されたデータセットの xml スキーマを書き留める必要があります。情報検索のために Nokogiri によって解析される必要があります。私の質問は、パフォーマンスの観点から、階層を尊重するのとフラット化するのとのどちらがよいかということです。例えば

<item_1 id="id_1">
  <item_2 id="id_2">value</item_2>
</item_1>

また

<item id_1="id_2" id_2="id_2">value</item>

可読性と保守性に関する限り、複数の属性を避けるべきであることは知っていますが、パフォーマンスが私の優先事項です。

4

1 に答える 1

1

絶対に最速のパフォーマンスが必要で、ドキュメントが大きい場合は、おそらく XPath をまったく使用したくないでしょう。SAX (またはリーダー) フィルターが最も高速です。

しかし、Nokogiri でドキュメントを解析して XPath 用の DOM を作成する場合は、以下を使用してクエリを実行するかどうかに大きな違いはないと思います。

doc.xpath('/item1[@id=x]/item2[@id=y]') #first case

また

doc.xpath('/item[@id_1=x and @id2=y]') #second case

もちろん、実際のデータに対してこれら 2 つのソリューションをベンチマークすることが、確実に知る唯一の方法です。

于 2013-06-10T01:38:11.530 に答える