Domanda

Usando groovy, ti aspetteresti prestazioni migliori in termini di velocità e sovraccarico di memoria per leggere e interrogare JSON vs XML?

È stato utile?

Soluzione

JSON è più piccolo e più semplice di XML. Scommetto che JSON è più veloce da analizzare.

YAML sarebbe ancora più veloce.

Altri suggerimenti

Se la velocità fosse davvero un problema, preferirei utilizzare una libreria Java per analizzare tutto ciò che voglio piuttosto che fare affidamento sull'implementazione di Groovy.

Se si tratta dello stesso schema e delle stesse informazioni, l'utilizzo della memoria sarà quasi lo stesso. Le prestazioni dovrebbero essere trascurabili tra i due.

Credo che la differenza di prestazione non sarebbe rilevabile da qualcosa di diverso da un profiler se lo schema e i dati fossero gli stessi. Detto questo potresti vedere una grande differenza se hai usato il parser XML sbagliato. In altre parole, un'implementazione SAX potrebbe facilmente corrispondere o forse superare le analisi JSON. Ci sono molti fattori esterni da considerare. Se vuoi la storia vera, lancia un parser JSON e SAX sullo stesso dato / schema senza logica aggiuntiva. I grandi risparmi derivano dalla logica utilizzata per interpretare l'analisi. Potrebbe essere più semplice utilizzare un DOM o un parser pull a seconda dei requisiti, mentre SAx causerebbe una soluzione non performante eccessivamente complicata. Inoltre ci sono notevoli differenze tra i parser. Aggiungi la variabile della dimensione del file e perdi rapidamente l'ambito di ciò che stai effettivamente misurando. Un altro esempio, se il tuo XML include descrizioni DTD e riferimenti di entità che devono essere risolti via cavo e la tua connessione di rete ha una latenza elevata, allora potresti vedere miglioramenti con JSON. Tutto si riduce a quello che stai davvero cercando di fare.

XML ha un po 'più di sovraccarico di JSON a causa delle parentesi angolari e delle informazioni extra e cosa no. Qualsiasi buon parser dovrebbe essere in grado di analizzare JSON più velocemente di XML per questo motivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top