Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495

    Ottimizzare la performance

    Ciao a tutti,

    eccomi qui con un'altra domandona.

    La mia applicazione sta ormai raggiungendo uno stato pseudo-finale. E' insomma quasi ora di mettersi a ottimizzare un po' la performance generale.

    Al di la' dell'ottimizzazione delle query, di creazione di indici opportuni e di tutta l'ottiminzzazione in ambito SQL che so gia' fare, quali sono le cose da evitare in PHP?

    Quali sono le funzioni piu' pesanti, generalmente da cercare di evitare di mettere nei loop, ad esempio?

    Quanto costa il parsing, in generale?

    Il problema si inizia a porre perche' il mio sistema impiega tempi nell'ordine degli 0.1 secondi a generare pagine a database quasi vuoto su un Athlon 2400. Voi capirete che non e' di certo accettabile.

    Se qualcuno ha consigli, intanto io inizio a scavare per conto mio

  2. #2
    Di che applicazione si tratta?

    Comunque alle volte bastano semplici apici o virgolette messe nel posto sbagliato per rallentare l'esecuzione.

  3. #3
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Il parsing delle stringhe e' molto importante? Io me ne sono sempre fregato e ho messo sempre le doppie vigolette (") anche in stringhe fisse.

  4. #4
    Ad esempio:
    Codice PHP:
    session_register("nome_sessione"); 
    è molto più veloce di:
    Codice PHP:
    session_register('nome_sessione'); 

  5. #5
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Intendi dire il contrario presumo, visto che gli apici singoli disabilitano il parsing delle stringhe.

  6. #6
    Originariamente inviato da ZoneForum
    Ad esempio:
    Codice PHP:
    session_register("nome_sessione"); 
    è molto più veloce di:
    Codice PHP:
    session_register('nome_sessione'); 
    al max è al contrario... ma a parte questo non sono di certo queste le ottimizzazioni che fanno notare la differenza

    molto spesso i carichi maggiori derivano da un'errata strutturazione delle query e dell'analisi dei risultati (in generale)
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Originariamente inviato da daniele_dll
    al max è al contrario... ma a parte questo non sono di certo queste le ottimizzazioni che fanno notare la differenza

    molto spesso i carichi maggiori derivano da un'errata strutturazione delle query e dell'analisi dei risultati (in generale)
    Sì, è il contrario
    Ho sbagliato a scrivere.

    Comunque era solo un esempio per far capire l'"importanza" degli apici singoli e doppi.

  8. #8
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Daniele, considera che anche le pagine con un paio di query impiegano circa 0.04 secondi. E' troppo.

    C'e' un mare di roba da parsare perche' includo un mare di cose.. :|

  9. #9
    Originariamente inviato da *Ray*
    Daniele, considera che anche le pagine con un paio di query impiegano circa 0.04 secondi. E' troppo.

    C'e' un mare di roba da parsare perche' includo un mare di cose.. :|
    sei su windows vero?
    mysql su linux è tra le 2 e le 4 volte + veloce
    inoltre se si abilita il caching è ancora + veloce

    mmm e un'altra cosa se puoi ridurre i file che includi e meglio...magari i file con poche funzioni li metti tutto in uno
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Come dicevo, il tempo di esecuzione al momento dipende in misura minima dalla performance di mysql, essendo il database scarico. Le query accedono sempre ai dati tramite colonne indicizzate in ogni caso.

    Avrei proprio bisogno di sapere cosa fare in ambito PHP.

    So che il 95% del carico e' sempre in ambito DBMS, ma nel mio caso la situazione e' radicalmente diversa.

    Una prima domanda di cui avrei bisogno di sapere la risposta e' questa:

    Faccio uso estensivo di hash. Ho un paio di array ENORMI che includo in tutti i sorgenti (non chiedetemi perche' e per come ne' se la cosa si puo' evitare perche'.. non si puo').

    Ho bisogno di sapere se e' piu' veloce creare e accedere ad un array monodimensionale con tante chiavi oppure se e' piu' veloce un array multidimensionale.

    Vi faccio un esempio pratico:

    Al momento attuale ho un array cosi' fatto:

    $mioArray = array(
    "a.a.a" => "valore1"
    "a.a.b" => "valore2"
    );

    Quando ho bisogno di "valore1", accedo a $mioArray["a.a.a"];

    E' piu' veloce fare l'equivalente multidimensionale siccome ci sono meno chiavi su cui ricercare?

    Non ho idea di come vengano gestiti internamente gli hash.

    PS: considerate che l'array in questione ha 1200 chiavi e viene inizializzato a ogni richiesta di pagina :| :| :|

    Spostarlo su database putroppo non ha senso in termini di performance, temo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.