Trucchi su come ottimizzare il codice PHP

1.168 visite

ottimizzare il codice php

Di seguito una lista di regole e consigli si come ottimizzare il codice PHP:

  1. Se possibile dichiara un metodo come static la velocità di esecuzione aumenta di un fattore 4.
  2. echo è più veloce di print.
  3. Usa echo con parametri multipli invece di concatenare le stringhe.
  4. Indica il valore max di un for-loop fuori e non dentro al loop.
  5. Effettua l’ unset delle tue variabile come grandi array.
  6. Evita se possibile di usare magic methods like __get, __set, __autoload
  7. require_once() richiede molte risorse
  8. Utilizza path completi in includes and requires PHP risparmierà il tempo nel risolvere l’ OS paths.
  9. Usa strncasecmp, strpbrk and stripos invece di regex
  10. str_replace è più veloce di preg_replace, ma strtr è più veloce di str_replace di un fattore 4.
  11. Usa i select case invece di molti if
  12. Sopprimere gli errori usando il carattere @ rende l’esecuzione del codice molto lenta.
  13. Utilizza apache mod_deflate
  14. Chiudi la connessione al database quanto hai finito.
  15. $row[‘id’] è 7 volte più veloce di $row[id]
  16. I messaggi di errore richiedono molte risorse
  17. Non usare chiamate a funzioni all’interno di un ciclo for loop, come per esempio for ($x=0; $x < count($arr); $x) perchè la funzione count verrà chiamata ad ogni ciclo.
  18. Incrementare una variabile locale in un metodo è più veloce.
  19. Incrementare una variabile globale è 2 volte più lenta di una variabile locale.
  20. Incrementare la proprietà di un oggetto (eg. $this->attr++) è 3 volte più lento di una variabile locale.
  21. Incrementare una variable locale undefined è 10 volte più lenta di una pre-inizializzata.
  22. Basta dichiarare una variabile globale in una funzione senza usarla che si rallenta l’esecuzione perchè PHP controlla se già esiste.
  23. L’invocazione di metodi è indipendente dal numero di metodi presenti in una classe.
  24. I Metodi in una classe derivata vengono eseguiti più velocemente di quelli definiti nella class base.
  25. Nelle stringhe usa il caratter ‘ invece ” renderà l’esecuzione più veloce a meno che non devi inserire variabili all’interno.
  26. Uno script PHP viene eseguito dalle 2 alle 10 volte più lentamente da Apache che una pagina HTML statica.
  27. Usare un sistema di cache in PHP rende l’esecuzione da 25 al 100% più veloce perchè la pagina.
  28. Se puoi usa memcache
  29. Quando si lavora con le stringhe ed è necessario controllare che la stringa è una di una certa lunghezza che ci comprensibilmente vorrebbe utilizzare la funzione strlen(). Questa funzione è abbastanza veloce in quanto si tratta di un’operazione non esegue alcun calcolo , ma semplicemente restituisce la lunghezza già noto di una stringa disponibile nella struttura zval ( C struct interno utilizzato per memorizzare le variabili in PHP). Tuttavia poiché strlen() è una funzione che è ancora piuttosto lento perché la chiamata di funzione richiede diverse operazioni come minuscole & ricerca hashtable seguita dalla realizzazione di detta funzione . In qualche caso è possibile migliorare la velocità del vostro codice utilizzando un isset().
  30. Incrementare o decrementare il valore di una variable $i++ sembra essere più lenta di ++$i.
  31. Non tutto deve essere OOP, perchè metodi e oggetti possono consumare molta memoria.
  32. Non implementare tutte le tue strutture come classi, potresti usare array in modo utile anche.
  33. Usa sempre se puoi le funzioni predefinite: sono più veloci.
  34. Se hai funzioni che richiedono molto tempo di elaborazione considera la possibilità di usarle come estensioni di C.
  35. Profila il tuo codice potresti trovare colli di bottiglia, usa strumenti come Xdebug debugger.
  36. mod_gzip disponibile come modulo Apache comprime i dati a run-time riducensone il trasferimento dell’80%
  37. Leggi questo eccellente articolo su come ottimizzare il PHP di John Lim

Iscriviti alla newsletter e rimani sempre aggiornato

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *