javascript string




Concatenazione di stringhe Javascript più veloce di questo esempio? (5)

Attenti a IE bad garbage collector! Cosa pensi di fare con il tuo array dopo l'uso? Probabilmente otterrà GC'd?

Puoi ottenere perfornace concatenando con i join e poi perdere durante il post-GC. D'altra parte, se si lascia sempre un array in ambito, e NON lo si riutilizza, può essere una buona soluzione.

Personalmente mi piacerebbe la soluzione più semplice: basta usare + = operatore.

Devo concatenare un gruppo di stringhe in Javascript e sto cercando il modo più veloce per farlo. Supponiamo che Javascript debba creare un "file" XML di grandi dimensioni che, naturalmente, è costituito da molte stringhe di piccole dimensioni. Quindi mi sono inventato:

    var sbuffer = [];
    for (var idx=0; idx<10000; idx=idx+1) {
        sbuffer.push(‘<xmltag>Data comes here... bla... </xmltag>’);
    }
    // Now we "send" it to the browser...
    alert(sbuffer.join(”));

Non prestare attenzione al loop o all'altro codice "sofisticato" che costruisce l'esempio.

La mia domanda è: per un numero sconosciuto di stringhe, hai un algoritmo / metodo / idea più veloce per concatenare molte stringhe piccole ad un enorme?


Cambiando la linea:

sbuffer.push('Data comes here... bla... ');

a

sbuffer[sbuffer.length] = 'Data comes here... bla... ';

ti darà un guadagno di velocità del 5-50% (a seconda del browser, in IE - il guadagno sarà più alto)

Saluti.


Penso che tu sia abbastanza vicino all'ottimo. YMMV, una grande quantità di velocità viene acquisita o persa all'interno del motore JavaScript del processo host (ad es. Browser).


Per quanto ne so, il tuo algoritmo è buono e noto come soluzione performante al problema di concatenazione delle stringhe.


Potresti ottenere un po 'più di velocità con il buffering .





join