APC rendant PHP 5.3 plus lent?

J’ai récemment appris à propos d’APC (je sais, je suis en retard à l’émission) et j’ai décidé de l’essayer sur mon serveur de développement. J’ai fait des parsings comparatives avec ApacheBench et, à ma grande surprise, j’ai constaté que les choses tournaient plus lentement qu’avant.

Je n’ai fait aucune optimisation de code pour utiliser apc_fetch ou quoi que ce soit, mais j’avais l’impression que la mise en cache de l’opcode devrait avoir un impact positif en soi?

 C:\Apache24\bin>ab -n 1000 http://localhost/ This is ApacheBench, Version 2.3  Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Finished 1000 requests Server Software: Apache/2.4.2 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 22820 bytes Concurrency Level: 1 Time taken for tests: 120.910 seconds Complete requests: 1000 Failed requests: 95 (Connect: 0, Receive: 0, Length: 95, Exceptions: 0) Write errors: 0 Total transferred: 23181893 bytes HTML transferred: 22819893 bytes Requests per second: 8.27 [#/sec] (mean) Time per request: 120.910 [ms] (mean) Time per request: 120.910 [ms] (mean, across all concurrent requests) Transfer rate: 187.23 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.4 0 1 Processing: 110 120 7.2 121 156 Waiting: 61 71 7.1 72 103 Total: 110 121 7.2 121 156 Percentage of the requests served within a certain time (ms) 50% 121 66% 122 75% 123 80% 130 90% 131 95% 132 98% 132 99% 137 100% 156 (longest request) 

Voici la section APC de mon php.ini. J’ai laissé la plupart des choses par défaut, sauf pour étendre la taille par défaut à 128 Mo au lieu de 32.

 [APC] apc.enabled = 1 apc.enable_cli = 1 apc.ttl=3600 apc.user_ttl=3600 apc.shm_size = 128M apc.slam_defense = 0 

Est-ce que je fais quelque chose de mal ou est-ce que je dois juste utiliser apc_fetch / store pour vraiment tirer profit d’APC?

Merci pour toute idée que vous pouvez donner.

Activer APC avec les parameters par défaut fera une différence notable (pour le moins) dans les temps de réponse pour votre script PHP. Vous n’avez pas à utiliser l’une de ses fonctions spécifiques de stockage / récupération pour bénéficier des avantages d’APC. En fait, normalement, vous n’avez même pas besoin d’un benchmark pour faire la différence. La différence devrait être évidente en naviguant simplement sur votre site.

Si vous ne voyez aucune différence et que vos tests ne comportent aucune erreur, alors je vous suggère de commencer à déboguer le problème (activer le rapport d’erreur, vérifier les journaux, etc.).