Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1912 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  mécanisme de l'interprétation du php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mécanisme de l'interprétation du php

n°723320
terkae
Posté le 12-05-2004 à 15:03:45  profilanswer
 

Salut,
 
J'aimerais savoir comment le serveur apache parse les fichiers php. Plus précisément, j'aimerais savoir s'il crée un fichier temporaire (ou garde le tout dans sa mémoire), puis l'envoie au client quand il a terminé, ou s'il interprète le fichier php et envoie au fur et à mesure ce qu'il a crée au client à l'aide d'un buffer (d'où un temps plus long entre le début de l'interprétation du fichier et de la fin).
 
Pour être sur d'etre bien compris:
Hyptohèse 1/ le serveur ouvre le fichier - il l'interprète - il a fini de l'interpréter - il envoie le tout au client
Hyptohèse 2/ le serveur ouvre le fichier - il commence à interpréter 2-3 lignes - il envoie au client les 2-3 lignes interprétées -quand le client a recu les 2-3 lignes, il fait les 2-3 lignes suivantes - il envoie les 2-3 suivantes interprétées, etc... jusk'à la fin du fichier.
 
Ayant fait des tests, je penche pour la deuxième solution, j'ai crée un fichier php me donnant l'heure au debut du script et à la fin du script, et entre temps il crée un max de balise html ki servent à rien. Le fichier généré fait environ 80Ko. Sur ma machine en locale, il m'affiche la page en 280-300ms. Sur une machine distante, il met 2800-3000ms. J'ai une freebox, la différence colle pas trop mal avec mon upload (256Kb).
Donc, je pense pour la deuxième hypothèse, si kelk'1 connaissant bien le fonctionnement des serveurs http pouvait me confirmer et m'en dire plus. Merchi ^^
 
Terkae.

mood
Publicité
Posté le 12-05-2004 à 15:03:45  profilanswer
 

n°723323
skeye
Posté le 12-05-2004 à 15:05:16  profilanswer
 

apache parse pas le php. Il le refile à l'interpréteur php et récupère ce que ce dernier lui donne.

n°723334
terkae
Posté le 12-05-2004 à 15:09:53  profilanswer
 

skeye a écrit :

apache parse pas le php. Il le refile à l'interpréteur php et récupère ce que ce dernier lui donne.


 
Alors pourkoi le temps affiché diffère lorsque le débit de ma connexion est différent ?  :sweat:

n°723343
skeye
Posté le 12-05-2004 à 15:15:13  profilanswer
 

terkae a écrit :

Alors pourkoi le temps affiché diffère lorsque le débit de ma connexion est différent ?  :sweat:


Apache ne confirme peut-être la réception d'un "echo" à l'interpréteur que lorsqu'il a lui même tout rebalancé au client...?

n°723348
Berceker U​nited
PSN : berceker_united
Posté le 12-05-2004 à 15:16:50  profilanswer
 

Le temps d'exécution depend totalement du server et non pas de ta connexion, logique.
Client ---> Server[traitement] --(html)--> Client.
 
Il différe de combien environs, car c'est une différence de quelque milliseconde dit toi que tes pas tous seul sur le server si t'es chez un heberger.

n°723351
skeye
Posté le 12-05-2004 à 15:17:40  profilanswer
 

Berceker United a écrit :

Le temps d'exécution depend totalement du server et non pas de ta connexion, logique.
Client ---> Server[traitement] --(html)--> Client.
 
Il différe de combien environs, car c'est une différence de quelque milliseconde dit toi que tes pas tous seul sur le server si t'es chez un heberger.


Ne pas tout lire, c'ets mal!:o

n°723362
drasche
Posté le 12-05-2004 à 15:22:13  profilanswer
 

ça peut dépendre de la connexion: PHP génère le truc et Apache le balance au fur et à mesure, du coup, PHP est ralenti parce qu'il attend qu'Apache rende la main pour continuer à générer la page. Mais si tu bufferises tout, tu diminueras ton temps de génération de page.
 
J'ai constaté ça avec une bête page qui prenait 1 seconde de temps de génération. Avec les ob_start() et ob_end_flush() qui vont bien, tu ramèneras le temps de génération à une mesure réaliste.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°723366
skeye
Posté le 12-05-2004 à 15:22:55  profilanswer
 

drasche a écrit :

ça peut dépendre de la connexion: PHP génère le truc et Apache le balance au fur et à mesure, du coup, PHP est ralenti parce qu'il attend qu'Apache rende la main pour continuer à générer la page. Mais si tu bufferises tout, tu diminueras ton temps de génération de page.
 
J'ai constaté ça avec une bête page qui prenait 1 seconde de temps de génération. Avec les ob_start() et ob_end_flush() qui vont bien, tu ramèneras le temps de génération à une mesure réaliste.


J'avais raison! \o/

n°723384
terkae
Posté le 12-05-2004 à 15:29:18  profilanswer
 

drasche a écrit :

ça peut dépendre de la connexion: PHP génère le truc et Apache le balance au fur et à mesure, du coup, PHP est ralenti parce qu'il attend qu'Apache rende la main pour continuer à générer la page. Mais si tu bufferises tout, tu diminueras ton temps de génération de page.
 
J'ai constaté ça avec une bête page qui prenait 1 seconde de temps de génération. Avec les ob_start() et ob_end_flush() qui vont bien, tu ramèneras le temps de génération à une mesure réaliste.


 
merci de vos réponses, c'est donc bien le php qui attend apache qui attend le client ^^.
Merci aussi pour les 2 fonctions, ca va m'aider  :jap:  
 
pour info, mes sources pour les tests :
<html>
<head></head>
<body>
<?
function getmicrotime()
{
  list($usec, $sec) = explode(" ",microtime());
 return ((float)$usec + (float)$sec);
};
 
$time_start = getmicrotime();
for ($i=1; $i<1000; $i++){
echo "<a href=\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\">b</a>";
if ($i%40==0) echo "</br>";
}
 
$time_end=@getmicrotime();
$time=$time_end-$time_start;
echo"</br>";
$time=round($time*1000);
echo "Page genérée en $time ms</br>";
?>
</body>
</html>

n°723385
nraynaud
lol
Posté le 12-05-2004 à 15:29:27  profilanswer
 

il me semble qu'il existe une option pour bufferiser totalement la sortie, ce qui permet d'envoyer des entêtes HTTP après avoir commencé à envoyer du contenu. J'ai la flemme de lire la doc pour vérifier si mes souvenirs sont bons.
 


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 12-05-2004 à 15:29:27  profilanswer
 

n°723392
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2004 à 15:32:17  profilanswer
 

nraynaud a écrit :

il me semble qu'il existe une option pour bufferiser totalement la sortie,  


 

drasche a écrit :

Avec les ob_start() et ob_end_flush()  


 
:whistle:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°723398
nraynaud
lol
Posté le 12-05-2004 à 15:35:25  profilanswer
 

la lecture de ce qui a déjà été posté, c'est pour les faibles.


---------------
trainoo.com, c'est fini
n°723403
Profil sup​primé
Posté le 12-05-2004 à 15:36:16  answer
 

wai jme sert de ob_start et flush aussi [:dawa]
 
non seulement on epargne apache/parser, mais en plus on peu utliser les header comme c'est pas permi [:dawa]

n°723442
sub1
Posté le 12-05-2004 à 15:59:27  profilanswer
 

il s'agit de l'option output_buffering
On peut lui précisez la taille maximale de buffer à utiliser.
Le problème, c'est que ca s'applique à tous les fichiers par la suite...
 

n°723449
drasche
Posté le 12-05-2004 à 16:02:33  profilanswer
 

nraynaud a écrit :

la lecture de ce qui a déjà été posté, c'est pour les faibles.


ptain dans la catégorie excuses bidons, on en tient un bon là :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°723487
nraynaud
lol
Posté le 12-05-2004 à 16:17:44  profilanswer
 

drasche a écrit :

ptain dans la catégorie excuses bidons, on en tient un bon là :D

C'est pas une excuse bidon, c'est parce que je démarre une psychotérapie que je peux pas trop me mettre en situation de faiblesse, pour pas tout ruiner dès le départ ...


---------------
trainoo.com, c'est fini
n°723762
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2004 à 18:05:10  profilanswer
 

drasche a écrit :

ptain dans la catégorie excuses bidons, on en tient un bon là :D


 
C'est pas crédible surtout. Une bonne excuse bidon c'est une excuse crédible mais qui semble un peu trop facile pour justifier la situation :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°723934
drasche
Posté le 12-05-2004 à 21:58:12  profilanswer
 

bien compris maître [:prosterne2] :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°723942
Profil sup​primé
Posté le 12-05-2004 à 22:06:43  answer
 

maitre antaipai? [:totoz]

n°723944
drasche
Posté le 12-05-2004 à 22:13:44  profilanswer
 

bin oui :o
maître es excuses bidons :o


Message édité par drasche le 12-05-2004 à 22:14:10

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  mécanisme de l'interprétation du php

 

Sujets relatifs
Interprétation des conditions d'un "if" et utilsation du "unset"Interprétation du <br> ......
Probleme d'interpretation d'un message d'Erreur de g++JSP : problème avec le mécanisme de gestion des erreurs
Pb d'interprétation d'une variable :-!Le mécanisme de gestion d'exceptions des JSP
[JAVA] Mécanisme pour charger des JAR à la demandeprobleme avec js lors de l'interpretation de variable
JSP : mécanisme d'erreur au comportement étrangeInterprétation script php (apache 2.0)
Plus de sujets relatifs à : mécanisme de l'interprétation du php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR