2009-09-20 4 views
1

PHP est interprété. Les JSP sont compilées. Pourtant, l'interpréteur PHP semble étroitement couplé avec Apache (en utilisant mod_php). Les JSP sont compilées, mais c'est un bytecode ... et pourtant le java runtime est hautement optimisé ... et pourtant il y a le conteneur Tomcat et mod_jk assis entre Apache et le runtime.Performance PHP vs. JSP: l'argument compilé vs interprété est-il pertinent pour ce problème?

Beaucoup de choses à considérer, bien sûr. Est-ce que quelqu'un a comparé ces deux configs? Quelqu'un a-t-il des données ou des expériences du monde réel concernant la performance, que ce soit un site simple ou complexe, sous diverses charges (de préférence lourdes)?

Des pensées?

Pour de meilleures performances, est-ce que je devrais tout coder en C++ en utilisant une passerelle CGI? (ha ha je plaisante)

+0

PHP est également compilé en bytecode. La seule différence est que PHP recompile le fichier à chaque requête. Si vous installez un cache de bytecode, cela fonctionne comme jsp. Je voudrais vraiment voir des repères du monde réel aussi. – FlorianH

+0

Non, pour une * meilleure * performance (sans devenir folle), écrivez tout en ** C ** en utilisant FastCGI. ;-) Sérieusement, souvenez-vous que si vous utilisez l'implémentation Java de Sun, même le bytecode est compilé en code machine (HotSpot est un compilateur JIT). http://java.sun.com/javase/technologies/hotspot/ –

+2

Juste un commentaire de genre sur la question des "meilleures performances": Il vaudrait mieux écrire le gros de votre code dans tout ce qui vous rend le plus productif et apporter le zippy pour les vrais goulots d'étranglement. – Chuck

Répondre

2

PHP est également compilé en bytecode. Pour éviter cela à chaque requête, installez APC. Cela va mettre en cache la compilation de sorte qu'il ne doit pas arriver à chaque fois.

Vous trouverez peut-être this intéressante.

+0

+1 Pourrait peut-être développer un peu "ceci", les gens n'aiment pas les liens sans explication de l'endroit où ils se lient. Lien intéressant, btw. –