2013-07-15 23 views
5

Sto cercando di analizzare un file semplice, e voglio sapere tra:Qual è un parser più veloce per XML?

  • XML::Simple
  • XML::Smart
  • LibXML

che uno è più veloce?

+0

Facile: utilizzare XML :: LibXML, che ha il vantaggio di utilizzare una libreria scritta in C. Implementa anche il DOM familiare. XML :: Simple non è né semplice, [né sostenuto dal suo autore] (https://metacpan.org/module/XML::Simple#STATUS-OF-THIS-MODULE). (Non sono qualificato per commentare XML :: Smart, ma a giudicare dall'esempio nei documenti, non mi piacerebbe molto). Se hai documenti molto grandi che devono essere trasmessi in streaming, usa invece [XML :: Twig] (https://metacpan.org/module/XML::Twig). – amon

+0

@amon - XML ​​:: Simple e XML :: Smart utilizzano entrambi expat per analizzare XML, che è scritto anche in C. – Quentin

+0

"Streaming" è anche possibile con 'XML :: LibXML', basta provare' XML :: LibXML :: Reader' o 'XML :: LibXML :: SAX'. –

risposta

8

XML :: LibXML è il più veloce, vedere i benchmark allo Ways to Rome.

Può avere o meno importanza per un "file semplice" (che presumo vorrebbe dire che non è troppo grande).

1

C'è anche XML :: Fast che sembra essere un concorrente serio. XML :: Simple può usare XML :: LibXML sotto il cofano, ma lo sto ancora vedendo come la principale perdita di CPU nei miei test CalDAV in questo momento.

Vale la pena provarlo se la velocità è una considerazione importante per te.

Problemi correlati