Newsgroup: it.comp.www.php
Titolo: php contatore e accesso simultaneo a più utenti

ho fatto un semplice contatore in php sul mio sito.
posto il codice:
    $REMOTE_ADDR     = $_SERVER['REMOTE_ADDR'];
    $USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
    $REFERER =$_SERVER['HTTP_REFERER'];
    $url = $_GET['page'];
    $file = "statistiche.txt";
    $stat  = date("d/m/Y H:i:s") . " x ";
    $stat .= $REMOTE_ADDR . " x ";
    $stat .= $USER_AGENT . " x ";
    $stat .= $REFERER . " x ";
    $stat .= $url . "<br>\r";
    if ($fp = fopen($file, "a"))
    {
        fwrite($fp, $stat);
        fclose($fp);
    }
mi pongo perň alcune domande su come ottimizzare al meglio il codice per non 
creare
un collo di bottiglia sul server quando accedono simultaneamente piů utenti.
(tenete presente che sul sito accedono parecchi utenti)....
(ovviamente il file non lo faccio crescere piů di qualche k... ogni giorno 
lo cancello)
il collo di bottiglia che vedo in questo codice č che nel caso di accesso 
simultaneo
alcuni utenti si fermano sull' if($fp = fopen($file, "a")) in attesa che il 
file possa essere scritto...
qualcuno che ha esperienza di php mi da un'idea brillante su come 
ottimizzare al meglio questa funzione?
a me viene in mente di creare 10 file e di smistare casualmente gli utenti 
tra questi file....
grazie a tutti.
-- 
http://hotelvarese.altervista.org/index.php
-------------------------------------------------------------------- 

aggiungo che questo piccolo script mi serve solo per fare alcuni test...
per le statistiche dettagliate uso altri script che agiscono sul server 
sql... 

 file e di smistare casualmente gli utenti tra questi file....
Puoi creare il file in un disco RAM invece che su un disco fisico, ma col 
caching del S.O. non credo che tu guadagni moltissimo in prestazioni.
Fai un po' di test prima di vedere se vale la pena ottimizzare.
Di quanti utenti al secondo stiamo parlando?
Bye.

 Bye.
probabilmente hai ragione...
il numero di utenti al secondo non è molto elevato,
tuttavia non volevo che quel 10% di persone che accedono contemporaneamente 
al sito
(in modo del tutto casuale) vengano penalizzate.
ho creato in circa 10 mesi un sito totalmente dinamico programmando tutti 
gli script necessari.
ho cercato di ottimizzare nei limiti del possibile.
un'altra cosa che volevo sistemare era il numero include("*****.php"); 
utilizzati...
ma non volevo perdere la leggibilità del codice...
in tutto il sito ci sono circa 15 include penso che questo possa influire 
molto sulle performance...
esistono tabelle con comparazione tra comandi e tempi di esecuzione?
di solito quando utilizzo c++ uso pacchetti che consentono di verificare in 
modo automatico quali sono
le funzioni più impegnative che il processore esegue... ma con il php non so 
che pesci prendere...

 non so che pesci prendere...
Esistono dei profiler anche in PHP. Per esempio Xdebug.
Personalmente non li ho ancora provati (non ne ho avuto necessita`).
Per ridurre il grosso del tempo impiegato, cioe` l'inclusione di file e 
la compilazione, puoi usare una cache di precompilati come eaccelerator 
(ma ce ne sono anche altre).
Bye.

 ha scritto nel messaggio 
news:6v4ovrF...@mid.individual.net...

ti ringrazio,
cercherò un po' su google.

Il Sat, 07 Feb 2009 08:44:35 +0000, MAItalyRIO ha scritto:
La firma va messa DOPO il messaggio, non prima, altrimenti, come vedi, i 
programmi di posta tagliano tutto quando si risponde, ma soprattutto (a 
me) colorano tutto il messaggio di azzurrino quasi invisibile.
Non hai niente di meglio di Windows Mail per gestire i newsgroup? Non 
dire Outlook! :P
Bye.

 Bye.
ops....
I'm sorry.
:-)
purtroppo uso windows mail...