Tout d'abord, CGI sera toujours lente. Il doit démarrer l'intégralité du runtime PHP pour chaque requête. Essayez d'utiliser FastCGI (If you're using IIS 7 ou if you're using IIS 6) ...
Après cela, essayez de voir pourquoi c'est lent. Est-ce parce que le script PHP prend beaucoup de temps à s'exécuter (ce qui signifie que c'est un problème de code), ou est-ce à cause d'une configuration du serveur. Pour tester, modifier ceci dans le début du point d'entrée du programme PHP (index.php):
define(START_TIME_CUSTOM, microtime(true));
function onEndTimeCompute() {
$timeTaken = microtime(true) - START_TIME_CUSTOM;
echo "Completed In: ".number_format($timeTaken, 4)." Seconds\n";
}
register_shutdown_function('onEndTimeCompute');
qui écrivent Completed in n Seconds
à la fin de la sortie générée (même si die()
est appelé). Cela peut provoquer des problèmes si les appels Ajax doivent renvoyer JSON, donc ne le faites pas en règle générale, juste pour essayer de comprendre ce qui se passe. Donc, si la demande totale prend 1 seconde, vous voyez Completed in 0.004 Seconds
, vous savez que le code PHP lui-même n'est pas le problème (que ce soit dans la configuration de l'interpréteur par CGI, ou ailleurs dans IIS). Cela devrait au moins vous montrer où le problème est ...
Est-ce qu'il fonctionnait plus vite sur Apache auparavant? – mario