Maison >développement back-end >tutoriel php >Quelle est la différence entre php et java

Quelle est la différence entre php et java

清浅
清浅original
2019-05-06 16:31:555349parcourir

Les différences entre PHP et Java sont : en termes de mécanisme d'exécution, PHP interprète et compile directement les codes de texte, tandis que Java est d'abord compilé en bytecode puis compilé deux fois dans la machine virtuelle, en termes de gestion de la concurrence, Java est adopté ; un processus unique et une approche multi-thread, PHP est un multi-processus

Quelle est la différence entre php et java

(1) Mécanisme d'exécution

Le code Java est compilé en mots Une fois le code enregistré, il sera recompilé par JIT dans la machine virtuelle en code local. Selon les rumeurs, sa vitesse d'exécution peut être comparable à celle du C++. Après mes propres tests, j'ai implémenté un simple cache de protocole Memcache. serveur en Java. Dans Java 1.6 Lorsqu'il est exécuté sous memcache, le rapport de temps d'accès pour la même quantité de données est d'environ 3:2 par rapport à memcache lui-même. Bien qu'il y ait un écart, il est bien meilleur qu'on ne l'imaginait. Java 1.7 a apporté de nombreuses améliorations à JIT et ses performances sont encore meilleures que Java 1.6.

PHP interprète et exécute directement les codes texte. Même avec la technologie de mise en cache des opcodes, il existe toujours un écart de performances insurmontable. L'opcode de PHP est similaire au bytecode de classe Java, qui est toujours interprété et exécuté.

(2) Gestion de la concurrence

Java adopte une approche multi-thread à processus unique pour le traitement simultané. L'application Web démarrera avec le démarrage du serveur Web, et de La requête du navigateur Web sera affectée au thread inactif dans le pool de threads pour traitement, c'est-à-dire que lorsqu'une requête arrive, le processus est prêt, le thread est prêt et tout ce que Java a à faire est de traiter l'affaire. logique.

PHP adopte une approche multi-processus pour le traitement simultané. Il n'y a pas de concept physique d'application Web dans le serveur Web, chaque requête est équivalente à une application indépendante, et le processus est démarré au fur et à mesure que la requête arrive. et meurt à la fin de la demande. Dans l'environnement Fast CGI, il existe une technologie de pool de processus similaire au pool de threads, ce qui est très utile pour améliorer les performances. Cependant, d'une part, le serveur Web et Fast cgi doivent toujours communiquer via des sockets, ce qui entraîne une certaine perte d'E/S. D'autre part, il est également difficile de communiquer entre les processus du pool de processus, c'est donc le cas. toujours incapable de se comparer à Java en termes de traitement simultané.

(3) Application de base de données

Java peut utiliser la technologie de pool de connexion à la base de données pour gagner du temps causée par le processus de connexion à la base de données.

PHP n'a pas cet avantage, la raison vient du deuxième point ci-dessus.

En ce qui concerne l'interface de base de données, Java a JDBC et PHP a PDO. Les deux sont très similaires. Cependant, Java dispose de nombreux frameworks technologiques ORM (tels qu'Hibernate) qui rendent les opérations de base de données extrêmement simples, et la façon dont PHP s'exécute détermine qu'il s'agit d'une zone restreinte pour ORM (bien sûr, vous pouvez également utiliser ORM, mais dans quelle mesure vous peut le faire, cela dépend de votre ORM (déterminé par la tolérance de la perte de performances causée).

(4) Technologie de mise en cache

Java est un processus unique De nombreux caches peuvent être effectués directement dans le tas Java sans recourir à des outils externes. De nombreux frameworks de bonne mise en cache, tels que Ehcache, ont également des performances très élevées car il n'y a pas d'E/S réseau.

PHP multi-processus et monothread détermine qu'il ne peut utiliser que des serveurs de cache externes, tels que Memcache.

(5) Déploiement à chaud

Java La capacité de déploiement à chaud est très faible. Si vous souhaitez corriger un bug sans arrêter le serveur, c'est difficile de le faire. PHP est naturellement déployable à chaud.

(6) Coûts de développement

Un bon programmeur Java nécessite plus de réserves de connaissances, et le cycle de développement et de débogage est également plus long. PHP est gratuit et le serveur Web est également gratuit.

(7) Sécurité

Cela dépend de la façon dont vous définissez la sécurité S'il s'agit de sécurité du code, il est facile de décompiler la classe Java. Il y a deux raisons à cela. : Presque pareil. Java dispose d'un mécanisme de configuration de sécurité pour garantir que certaines « opérations illégales » ne peuvent pas être exécutées. À cet égard, PHP est plus faible. Cependant, alors que Java peut facilement provoquer le crash de l’ensemble de l’application à cause d’un bug, PHP est beaucoup plus sûr.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn