Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Il mio sito è lento a causa degli include?

    Ciao a tutti, vi scrivo perchè ho da qualche tempo un problema davvero fastidioso.

    Il mio sito: www.jkfc.net contiene diversi comandi include nella sua struttura, ma questi spesso rallentano in modo inverosimile il caricamento delle pagine (per dire, può metterci anche 16 secondi per caricare una cosa stupida come un elenco utenti). A volte invece, mi da questi errori:

    Warning: main() [function.main]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /web/htdocs/www.jkfc.eu/home/forum/view_forum.php on line 26

    Warning: main(http://www.jkfc.eu/lib/top.x) [function.main]: failed to open stream: Success in /web/htdocs/www.jkfc.eu/home/forum/view_forum.php on line 26

    Warning: main() [function.include]: Failed opening 'http://www.jkfc.eu/lib/top.x' for inclusion (include_path='.:/php/lib/php/') in /web/htdocs/www.jkfc.eu/home/forum/view_forum.php on line 26

    Ma succede casualmente e non su basi regolari.
    Ho pensato che con le nuove versioni di php il comando include possa essere cambiato o cose del genere, ma non riesco davvero a trovare una soluzione al problema.

    Normalmente le mie pagine hanon questa successione di include:

    include('lib/variabili.x'); file che carica la variabile della ulr del sito
    include($url_assoluta . 'lib/top.x'); file che carica tutta la parte superiore del sito.

    Qualcuno di voi ha un'idea di quale possa essere la soluzione?
    Anche perchèp mi sta passando la voglia di andare sul mio stesso sito e rifarlo da zero significherebbe lasciarlo perdere.

    Grazie mille.

  2. #2
    non vorrei sbagliarmi ma sembra che include è come se richiedesse via http e non localmente il file da includere.
    Qualcuno che conosce bene il funzionamento di include sa come viene eseguita l'inclusione da php?
    So che si possono richiede anche file remoti per l'inclusione (ma in questo caso i'esecuzione del file viene eseguita dal server remoto naturalmente) e nel caso questi non fossero disponibili l'esecuzione delle pagine verrebbe rallentata...


    edit:
    non avevo letto la riga : include($url_assoluta . 'lib/top.x');
    se invece di mettere $url_assoluta tu mettessi il path assoluto credo che si risolvano i tuoi problemi....

  3. #3
    Ciao, purtroppo non è cambiato nulla...e io non so dove mettere le mani....aiuto....

  4. #4
    potresti postare il codice e i vari errori?

  5. #5
    Se vuoi vedere se è una questione di tempo (e magari di errato resolving (?) degli indirizzi dei files) prova a stampare il microtime tra una include e l'altra... è un approccio un po' "panzer" ma serve al suo scopo (almeno in parte) :P

    Codice PHP:
    function showmicrotime(){
       list(
    $usec$sec) = explode(" ",microtime());
       return ((float)
    $usec + (float)$sec);
       } 
    poi tra una include e l'altra fai
    Codice PHP:
    echo showmicrotime(); 
    e vedi un po' il tempo che ci impiegano...
    Almeno ti fai un'idea di massima...
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  6. #6
    Be, si, ottimo consiglio, così vedo quali sono gli include che mi portano via anni e anni...maledetti.

    La cosa strana è che ha iniziato a fare queto problema da un giorno all'altro.
    Per Viruz, inserire il codice sarebbe un casino, ma ti posso dire che sono quasi totalmente sicuro a metà che sia un problema di include

  7. #7
    Ok, dopo aver cambiato ogni singolo "$url_assoluta" con il percorso locale sembra che il sito abbia risolto i suoi problemi.

    La cosa che mi chiedo è come mai il comando include ci mette addirittura 5 o 6 secondi a trovare un file se gli viene assegnata una url globale e non un percorso locale. Non ha molto senso o sbaglio?

    Comunque grazie mille

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Invece ha molto senso se ci pensi.


    Se tu gli dai un percorso locale lui sa dove prendere il file.

    Se gli dai un percorso conprensivo di url succede la seguente cosa:

    Il server richiede al proprio server dns qual'è l'ip pubblico corrispondente all'indirizzo www.jkfc.eu, dopodichè viene aperta una connessione (che praticamnete avviene in locale, ma in realtà attraverso il protocollo http, con tutte le comunicazioni che il protocollo richiede), scarica il file e poi lo include.

    Se moltiplichi il tutto per N include capisci che il tempo diventa importante.

    Ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.