Response.Write o concatenare la stringa?

di Daniele Bochicchio, in Classic ASP, Tips, Misc,

Ci sono tanti modi di scrivere codice, ma ce n'è sempre uno più performante di un altro.
Non è raro utilizzare uno script come il seguente (con le dovute modifiche) che costruisce una variabile all'interno di un ciclo:

<%

for i = 1 to 1000
  strHTML = strHTML & " " & i
next

Response.write strHTML

%>

Un approccio più performante consiste nell'usare direttamente Response.Write, inviando subito in output quanto prodotto.
Eccone un esempio:

<%

for i = 1 to 1000
  Response.Write " " & i
next

%>

Il perchè di un comportamento del genere, è spiegato in questo articolo della KB di Microsoft:
http://support.microsoft.com/support/kb/articles/Q170/9/64.ASP

In breve, questa differenza sostanziale di performance (provate a misurare l'esecuzione di entrambi gli script) è dovuta alla gestione delle variabili di VBScript ed all'allocazione della memoria.
Infatti, VBScript allocherà dapprima una porzione di memoria per salvare una copia temporanea della nuova variabile, aggiungerà il valore, quindi la vecchia copia, deallocherà la memoria occupata dalla vecchia copia, allocherà una nuova porzione di memoria, copierà il risultato dell'elaborazione in questo nuovo spazio e quindi deallocherà la memoria utilizzata dalla copia temporanea.
Davvero un giro inutile che si può agevolmente risparmiare.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi