30

Indépendamment des aspects "fun" ou autre : 2ms pour générer une page, c'est plutôt largement pas mal ^^ va pas être évident de faire moins ^^
(maintenant, si tu as un temps de génération de page de 2ms côté serveur, il y a fort à parier que tu gagnerais plus en optimisant côté client (genre temps de chargement des pages, nombre de requetes HTTP, ...) que côté serveur ^^ )

un point non négligeable, tout de même : du code PHP, avec n'importe quel éditeur de texte, tu peux le modfier ; et les modifications sont instantanément prises en compte au prochain chargement de page (ou vidage de cache, si tu as un cache d'opcode et que la vérification de modifications de fichiers est désactivée)
par contre, avec une extension en C, débugger et patcher, ça va devenir un brin plus compliqué wink
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

31

en fait je me suis déjà posé la question pour pouvoir optimiser le nombre de fichiers nécessaires au client pour afficher les sites,

mais ca c'est une autre partie, le but de mon code est qu'il soit générique, que l'utilisateur joue au lego avec,
le contenu html complet du site est entièrement à sa charge, rien n'est imposé, juste à mettre des [title] [meta] [js] ... la ou il faut pour que se soit remplis par le moteur,
si l'utilisateur après fait une tour bancale avec les lego que je lui fourni et charge 200 fichiers différents c'est pas mon problème, mais c'est sur qu'il vaut mieux réunir tous les js en un seul fichier plutôt que d'en laisser 15 de 3ko à charger

à la limite, je voudrais plutôt rajouter au lieu de virer un fichier à charger, car actuellement j'utilise beaucoup de code js "inline", enfin directement dans le fichier html quoi, comme en ./2 quant je fait
addToJs('$("#slideshow-comm").cycle({fx:"scrollDown,fade,scrollLeft"});');ca va simplement rajouter le contenu passé à ce qui sera remplacera [js] en l'occurrence, j'imagine bien que c'est le mal grin mais pour l'instant google à pas l'air de mal le prendre

je voudrais bien, justement l'externaliser dans un fichier unique, mais je ne vois pas trop comment le faire en fait pour que cela reste dynamique :/
peu être mettre le contenu dans redis, donc en ram et que le php qui renverrais ce js aille simplement récupérer le contenu dans redis,
mais c'est discutable, ca ferais perdre des perf, ferais dl un fichier en sus, tout ca pour externaliser le js, surtout que peu être google s'en tape happy
et ca m'obligerais peu être à mettre des rand dans les nom de fichier à cause de par exemple chrome qui garde tout en cache, et mm 10 F5 vont pas le faire se mettre à jour, donc redl de peu être le mm contenu etc ...

c'est sur que niveau debug tout ca ca va être fun, ca m'étonnerais que je puisse faire de jolie printf à l'ancienne (ouais je suis à l'ancienne niveau debug), mais je peu mettre en place un système de log,
après je ne vais surement pas tout mettre en extension, juste le cœur, style la fonction qui va récupérer un design va par exemple mater 5 emplacements sur le disque, 2 dans redis et finalement regarde dans les modules du moteur, c'est sur qu'après je met direct dans un cache de design, sauf si spécifié, mais par exemple si le cache de design est vide, ca va chercher tous les designs, puis passer chaque morceau de page, ou squelette de page en cache etc, bref, je viens de le faire à l'instant, 59ms à la première exécution, puis 2,02ms la fois suivante .. pour 12 "designs" mis en cache, dont un module externe qui affiche un menu,
bref je verrais bien, quant j'aurais un peu de temps pour moi, dans un mois ou deux, mais j'ai quant mm réussi à faire le hello world version module php que tu ma linké grin
et la le mec il le pécho par le bras et il lui dit '

32

(bon ben au moins, tu as l'air de t'amuser ^^ ce qui est le principal ^^ )
r043v (./31) :
mais j'ai quant mm réussi à faire le hello world version module php que tu ma linké biggrin.gif

félicitations, tu as été plus loin que je ne l'ai jamais été ^^
(à part lire le code de deux/trois extensions, j'ai encore jamais eu le temps/courage de me mettre à en coder une "pour le fun" ^^ )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

33

bah j'ai juste dl les source php, fait copier coller de ce qui est sur le site dans 3 fichiers dans le rep /ext/hello/ des sources php
essayé de compiler, corigé le #include "php_hello.h" donné par #include "hello.h" qui etais plus logique, après j'ai lu les commentaires pour comprendre pkoi ca marchais pas, donc mis extension=hello.so dans php.ini et callé hello.so dans le rep modules de php

rien de bien méchant mais un grand sourire quant Hello World c'est affiché :- )

maintenant le plus dur est devant moi ..
et la le mec il le pécho par le bras et il lui dit '

34

y a un truc génial qui s'appelle le cache de contenu... tu mets en cache les pages générées ! elles doivent pas changées sans arret, ou dépendre trop de l'utilisateur front, non ? et meme si c'est le cas, tu mets en cache une version ne contenant pas les parties dynamiques, et en ajax, tu charges les tous petits blocs qui le sont.

apres, comme dit, 2ms pour généré une page, c'est largement suffisant, ca ne sert à rien de faire mieux. les 22ms c'est la premiere fois que le serveur apache/php démarre ! après, elles seront toutes rapides
Ancien pseudo : lolo

35

bah c'est ce que je fait, tout ce qui n'est pas précisé comme "non cachable" est mis en cache interne au moteur, que se soit dynamique ou pas (le module affichant le menu par exemple est aussi mis en cache)

donc ma page, si elle comporte par exemple 15 bout distinct pour être construite, peu en réalité ne contenir qu'une seule partie réellement 'dynamique', qui sera exécuté à chaque appel

par contre il y a des limitations,
le cache n'est que global, il ne peu être spécifique à un user particulier par exemple, il va falloir que je retourne sur le papier pour voir comment implémenter cela.
également, le cache ne concerne que le code html de sortie, il faudrait mettre peu être un cache intermédiaire prenant le php non exécuté, mais pareil c'est à double tranchant, eval étant lent, ou bien mettre seulement en cache l'emplacement reel de la ressource, évitant de checker jusqu'à 8 possibilités

bref je veut en faire qq chose de bien, vraiment générique, mais c'est compliqué cheeky

> les 22ms c'est la première fois que le serveur apache/php démarre ! après, elles seront toutes rapides

non, le bytecode php étant déjà en cache au moment des 59ms, j'ai juste supprimé le cache interne au moteur, le temps qu'il rechecke tous les emplacement possibles, exécute leur code par un include avec ob* oui bien eval si ca proviens de redis, puis qu'il mette tout en cache interne, ca à pris 59ms, la fois d'après, tout étais en cache ca à pris 2ms, et ca restera toujours constant dans ces eaux la
puis j'ai cliqué sur un lien de la page, des partie de la nouvelle étais communes à la précédentes, donc ca na pris 'que' 20ms à la première demande de cette page
et la le mec il le pécho par le bras et il lui dit '

36

ha bah ca existe déjà un système de template en module php happy

http://alexeyrybak.com/blitz/blitz_en.html#bench

comme dab la roue est déjà ronde :'(
et la le mec il le pécho par le bras et il lui dit '