Sicuramente tutti gli sviluppatori ASP si sono imbattutti prima o poi in questa domanda: "ma quale impatto in termini di carico ha la mia pagina ASP sul server?".
Questa é una serie di consigli da usare per migliorare le performance delle tue pagine:
1 -Usare GLOBAL.ASA per file a livello application
Se le tue pagine leggono su file che non cambiano spesso o quasi mai, invece di usare l'ogetto FileSystem Object, é più performante caricare i files in questione in un array a livello Application in GLOBAL.ASA. GLOBAL.ASA é un file (opzionale) dove si possono specificare eventi e quindi assegnare script e dichiarare oggetti a livello session o application. GLOBAL.ASA non visualizza testo all'utente ma conserva informazioni ed oggetti, gestendo gli eventi a livello application e session.
Quindi basta richiamare dalle tue pagine l'array con i dati. Questo implica leggere sul file una volta per server, anziché una volta per ogni pagina per ogni utente. E' necessario poi creare comunque una pagina speciale per permettere eventuali aggiornamenti, in quanto una volta caricato in una variabile a livello application, questa rimarrà identica a se stessa fino a quando non verrà aggiornata.
E' possibile implementare il tutto tramite un array oppure un oggetto Dictionary . Il file sarà letto solo una volta e ciò permetterà di accedere alle informazioni tramite l'array o l'oggetto Dictionary senza aver bisogno di fare una richiesta ogni volta che fosse necessario leggere informazioni da quel file.
Nel caso fosse necessario aggiornare il contenuto dei dati, é possibile creare una pagina riservata contenente uno script che esegue il comando Application.Lock , aggiorna le informazioni ed infine esegue il comando Application.Unlock che mette a disposizione di tutti i dati.
2 - Rimuovere i commenti HTML
I commenti HTML (quelli contenuti nella pagine tra <!-- e -->) rallentano le prestazioni, specie con IIS 3. Rimuovendoli si rende il tutto più veloce.
3 - Concentrare i comandi Response.Write
Se usi molti <%=...%> per scrivere in diverse parti del codice, prova a concentrare il tutto in un unico Response.Write.
E' un buon sistema cercare di dividere la pagina in blocchi di HTML e script, in modo da velocizzare il caricamento. Per ogni coppia di <% %> il server esegue un comando che va a rallentare le prestazioni globali del server.
4 - Evitare di ridimensionare gli arrays
Per non togliere risorse al server, é più indicato usare come dimensione di un array quella più bassa o meglio ancora a quella ottimale, e solo se necesario, usando Redim portarla alla dimensione necessaria. Tutto ciò significa risparmiare un po' di memoria, invece di allocarla e spendere qualche mega di ram.
5 - Evitare le variabili pubbliche
Se stai scrivendo in VBScript oppure stai accendo a qualche controllo ActiveX o script java, cerca di non usare le "Public variables". Questa chiave é al momento usata solo per compatibilità future, per cui é meglio usare Dim , dato che non esiste nessun vantaggio nell'usare l'altro metodo.
6 - Usare percorsi di ricerca completi
Cerca di evitare di usare MapPath se possibile, cercando di usare il percorso completo. Usando MapPath IIS deve andare a leggere il percorso con una speciale richiesta che tradotto vuol dire decadimento delle prestazioni.
7 - Evitare di usare intensivamente le "Server Variables"
Ogni volta che si accede alle cosidette "Server Variables", il web server le richiede tutte, per poi fornire alla pagina ASP solo quella desiderata. Quindi se io voglio ad esempio sapere solamente il valore dell'header HTTP_ACCEPT, il server andrà per prima cosa a richiedere tutta lista delle variabili, quindi ritornerà la variabile che ho chiesto. Tutto questo influsice sulle prestazioni. Naturalmente nel corso di una pagina, dopo aver ricevuto la prima variabile, per le altre non ci sarà un decadimento delle prestazioni, dato che il server le ha già memorizzate tutte.
8 - Usare "Option Explicit"
Usando Option Explicit Visual Basic genererà un messaggio d'errore qualora si cerchi di accedere a variabili non dichiarate. Le variabili local non dichiarate sono lente più delle global. Inoltre questa opzione può essere utile per scovare variabili non dichiarate nel tuo codice.
9 - Non abusare dell'oggetto "Session"
L'ogetto Session serve per memorizzare durante la sessione di navigazione di un singolo utente, diverse informazioni. Le variabili contenute in questo oggetto vengono mantenute durante la navigazione dell'utente da una pagina all'altra.
Il web server crea automaticamente un ogetto Session ogniqualvolta viene richiesta per la prima volta una pagina all'interno di una determinata application e la distrugge quando non ci sono più richieste (di solito dopo 10 minuti, ma il valore é impostabile tramite il commando Session.Timeout=15, dove in questo caso abbiamo impostato il TimeOut della session a 15 min).
E' possibile disattivare l'oggetto Session, ma si perdono molte caratteristiche avanzate delle ASP in questo modo. E' meglio usarlo con parsimonia, evitando di memorizzarci tante variabili.
10 - Ed infine...
... testa le tue modifiche! Testare la velocità di risposta di una pagina é il modo migliore per capire se tutto il tuo lavoro ha dato i frutti che hai sperato, oppure si é trattato solo di una perdita di tempo.
Un ultimo consiglio: scrivi le tue pagine ASP con stile! Cerca di essere il più chiaro possibile con te stesso, in modo da rendere divertente e veloce il lavoro di aggiornamento delle pagine stesse!
- 1 -Usare GLOBAL.ASA per file a livello application
- 2 - Rimuovere i commenti HTML
- 3 - Concentrare i comandi Response.Write
- 4 - Evitare di ridimensionare gli arrays
- 5 - Evitare le variabili pubbliche
- 6 - Usare percorsi di ricerca completi
- 7 - Evitare di usare intensivamente le "Server Variables"
- 8 - Usare "Option Explicit"
- 9 - Non abusare dell'oggetto "Session"
- 10 - Ed infine...
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.