Velocizzare un sito? postato il 02/02/2009 16:14:29 nel forum programmazione, gdrcd e open source
In questa giornata nevosa in cui non ho nulla da fare ho deciso di tornare a programmare.
Vengo qui ed ora, davanti a voi giganti della programmazione, con un problema che attanaglia molti (spero che questo topic possa servire non solo a me ma anche ad altri): come posso velocizzare il mio sito?
Non si tratta di Gdr-Online, ma è un discorso che può benissimo essere fatto anche su questa categoria.
Premettendo che i linguaggi che uso sono (x)html + PHP + MySQL + JavaScript (compreso Ajax) mi chiedevo come potrei ottimizzare i tempi di caricamento del mio sito.
Ho iniziato a fare qualcosa veramente a livello terra terra, per esempio quando uso un SELECT MySQL per il DataBase sostituisco l'* per selezionare tutto con le colonne che effettivamente mi interessano, anche se non so se ciò faccia guadagnare qualcosa, e per questo chiedo a voi qualche consiglio; non risparmiatevi anche dai consigli più monotoni e ovvi.
Grazie mille cmq ^^
(Ho tra l'altro letto da qualche parte che c'è una sorta di ossessione tra i programmatori legata appunto al cercare di guadagnare anche un centesimo di secondo, qualcuno si ricorda il nome di tale ossessione che son curioso?)
Pagine → 1
02/02/2009 16:42:34
02/02/2009 16:46:53
02/02/2009 17:57:03
02/02/2009 18:13:38
02/02/2009 19:55:43
Ogni linguaggio avrebbe bisogno di un discorso a parte.
Se devi usare php e ajax ti consiglio di usare json passando solo dati spuri, facendo richieste al database mirate e che non sovraccarichino la ram del server.
Se si parla di php, ci sono milioni di funzioni che possono aiutarti a ottimizzare il codice - ma spesso sono cose non visibili ad occhio umano.
Un buon trucco e crearsi il codice in maniera intelligente, e, non da meno, trovarsi un server serio.
02/02/2009 20:07:05
salute a tutti nel mio breve momento di Riemersione:
http://developer.yahoo.com/yslow/
addon per FF che si ri fa a questo: http://developer.yahoo.com/performance/rules.html
enjoy!
02/02/2009 21:01:51
Per il php.. ho il mio piccolo manualetto di ottimizzazione in continuo aggiornamento che condivido volentieri ;)
1. Se il metodo di una classe può essere statico, dichiaralo come tale aumentando di 4 la sua velocità .
2. Se possibile evita i metodi magici come: __get, __set, __autoload
3. Echo è più veloce di print e molto più veloce di printf.
4. Usa i parametri multipli di echo per concatenare le stringe. Quando puoi, infatti, usa la virgola invece del punto.
5. Non settare il valore massimo del tuo ciclo all’interno dello stesso, qualsiasi funzione nella dichiarazione viene rieseguita ad ogni giro.
6. Effettua l’unset delle variabili che non utilizzi per liberare la memoria, specialmente per array molto grandi.
7. require_once() e include_once() sono più lenti dei sui gemelli senza controllo di unicità.
8. Utilizza paths completi nei tuoi includes e requires, per risparmiare del tempo al sistema operativo del server per trovare quello completo.
9. Invece di utilizzare $_SERVER[’REQUEST_TIME’] è consigliato utilizzare time() per scoprire l’ora di esecuzione della tua pagina.
10. Se è possibile, prova ad utilizzare strncasecmp, strpbrk e stripos invece di una regular expression.
11. Str_replace è più veloce di preg_replace, ma strtr è più veloce di str_replace di 4 volte.
12. E’ meglio usare lo switch che degli if annidati o degli elseif.
13. Sopprimere gli errori con @ è molto lento, evitalo quanto puoi farlo.
14. Se hai modo di mettere le mani sui apache, abilita il mod_deflate.
15. Quando hai terminato l’utilizzo della connessione al database, chiudila.
16. $array[‘key’] è ca. 7 volte più veloce di $array[key].
17. Incrementare una variabile locale all’interno di un metodo è più veloce che richiamare una variabile locale di una funzione.
18. Incrementare invece una variabile globale è 2 volte più lento che una variabile locale.
19. Incrementare le proprietà di un oggetto (es. $this->propietà++) è 3 volte più lento di una variabile locale.
20. Incrementare una variabile locale non inizializzata è ca.10 volte più lento che farlo con una inizializzata in precedenza.
21. I metodi nelle classi derivate sono più veloci di quelle definite nella classe base.
22. Utilizzando i singoli apici (‘…’) invece di quelli doppi (“…”) puoi rendere la vita più facile a php velocizzandolo di poco! Questo perché php va a cercare delle variabili nelle stringhe con gli apici doppi.
23. Uno script php per essere processato necessita da 2 a 10 volte in più d’una pagina html. Cerca di utilizzare più html statico e meno scripts.
24. Ad ogni richiesta i file php vengono compilati nuovamente, utilizzando un software di caching puoi incrementare la performance da 25 a 100% annullando o quasi il tempo di compilazione.
25. Se dovete fare un controllo sulla lunghezza delle stringhe potete usare strlen() che è pittosto veloce da quando stampa direttamente la lunghezza (già conosciuta) della stringa. Tuttavia essendo una funzione richiede del tempo per eseguire le diverse operazioni come lowercase & hashtable. In questi casi può tornarci utile un trucchetto con isset().
03/02/2009 22:27:48
altri suggerimento che riguarda i riferimenti nell'header
ogni file esterno linkato ad una pagina, come possono essere i css o i javascript, richiedono un sacco di tempi di elaborazione perchè avviano la procedura di comunicazione con il server per la verifica che esista effettivamente il file linkato e caricarlo.
1 - fare comunque un solo file per le parti esterno (es. 1 x css 1 x js)
2 - non inglobare in queste pagine ciò che è specifico per una singola pagina
ma solo ciò che è presente in tutte le pagine.
3 - costruirsi delle librerie personali solo con le funzioni che servono. la libreria di terzi contiene un sacco i codice inutilizzato che sono kb che il sistema deve caricare
4 - considerare di scrivere in locale, ovvero sulla pagina interessata, parte del codice, 20kb in locale sono molto più lesti ad essere caricati che linkati in un file esterno
5 - fare due versioni del programma uno con e uno senza commenti. il testo dei commenti è un peso in kb che viene cmq caricato
per quanto riguarda la grafica, come diceva anche black, usare immagini png e spesso considerare anche di abbassare la qualità di queste ad un unmero di colori inferiore del 256. Prima di tutto spesso questo gioca crea alcuni giochi piacevoli sulle immagini del tipo sabbiato, anticato o pennellato ruvidamente, secondo molto spesso ci sono immagini che che sono quasi monocromatiche e che subiscono in maniera impercettibile ad occhio nudo , la variazione da 256 colori a 64 ad esempio, però il peso dell'immagine può anche dimezzarsi
04/02/2009 08:13:26 e modificato da blancks il 04/02/2009 08:14:03
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Legacy of Magic: Le creature di Colline Ventose