Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    valutazione pesantezza sito (in termini di query ed elaborazione)

    salve. ho un sito internet con un utente bassina (per ora), sulle 200 visite al giorno.

    man mano che ho implementato il mio sito mi son accorto sempre di più come molte pagine abbiano parecchie query rispetto ad altre (ho delle pagine per esempio con 20-30 query, altre con 5, e via così). credo comunque che 20-30 sia il massimo nel mio sito (e, secondo me, già queste sono tantissime).

    quello che volevo sapere è :
    1 - c'è qualche funzione che mi permetta di valutare per ogni singola pagina la velocità di esecuzione? avevo trovato questa :
    codice:
    <?php echo get_num_queries(); ?> queries, <?php timer_stop(1); ?> seconds.
    ma sembra non funzionare (non trova quelle funzioni)...

    2 - qualche consiglio su come alleggerire il tutto?

    diminuire il numero di query mi sembra difficile, visto che gestisco tanti dati, e ho parecchie tabelle. solo che, per esempio, se devo fare 5 richieste a 5 tabelle diverse, uso 5 query diverse (Nb. le tabelle non hanno niente a che fare tra di loro, quindi inutile utilizzare join ecc).

    una volta usando mysql su java mi ricordo che c'erano delle strutture che permettevano di fare un singolo mysql_query (invece che uno per ogni query; sicuramente è più veloce richiedere/utilizzare un singolo flusso verso/da il database invece che n) e gestiva i dati tramite un array multidimensionale, magari c'è qualcosa di simile in php...

    cordiali saluti

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    a dir la verità mi interesserebbe approfondire anche l'argomento (che, scusate la terminlogia sicuramente inesatta) di generare pagine "statiche" a partire da pagine dinamiche.

    mi spiego : per quanto ne sò, le pagine dei siti che devono essere dinamici ma che hanno richieste quotidiane pesanti vengono generate al momento solo quando è "necessario", evitando per ogni utente di fare delle query che sono (in quel momento) inutili (vedi molti forum, come questo sicuramente, o phpBB, ecc).

    come si chiama questa tecnica? ha un nome? se qualcuno potrebbe scrivermi un punto di partenza ne sarei entusiasta.

    cordiali saluti

  3. #3
    La tecnica di cui parli si chiama caching ed e' usata un po' ovunque proprio perche' ricalcolare ogni volta i dati e' spesso uno spreco non necessario di risorse. Ci sono diverse tecniche per fare il caching di query in PHP, ti consiglio di cercare un po' in giro perche' trattarle tutte qui sarebbe un po' impegnativo

    Per avere un rapporto delle query eseguite da una pagina serve un po' di lavoro preparatorio, la funzione che menzionavi nel primo post e' specifica di wordpress e non generale. Puoi usare un wrapper invece di chiamare direttamente la funzione che esegue la query, cosi' da tenere traccia di cio' che viene eseguito; il wrapper tra l'altro potrebbe anche usare una cache, l'idea e' un po' questa: invece di chiamare direttamente la (ipotetica) funzione query() tu chiami invece query_wrapper(), quest'ultima ricevera' i parametri soliti e - prima di eseguire la vera query, o dopo averla eseguita - puo' fare altre operazioni come:
    • incrementare un contatore che tiene traccia delle query eseguite
    • calcolare il tempo necessario per l'esecuzione della query
    • registrare il risultato della query da qualche parte per poi poterlo restituire in una successiva chiamata per la stessa identica query invece di eseguirla di nuovo (questa e' la cache)
    • varie ed eventuali

    si chiama wrapper proprio perche' "avvolge" la funzione originale aggiungendo funzionalita'.

    Altrimenti puoi dare un'occhiata a Xdebug

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    gentilissimo grazie mille era quello che cercavo!!! buona giornata e grazie ancora.

    ah ok! quando chiamo una query effettivamente la chiamo direttamente tramite mysql_query(), non ho creato una funzione cui passo la query e la elabora (che effettivamente è molto più comodo senza scrivere ogni volta il codice.

    ok, vorrà dire che la implementerò a dovere

  5. #5
    No non esiste, era solo un nome ipotetico
    O la crei tu o cerchi qualche libreria.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    hehe sisi infatti mi son accorto dell'idiozia, infatti ho modificato il topic

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.