résumé des deux VM de Java : Server & Client
-------------------------------------------------------------------- de moi-même----------------------------------------------------------------------- Actuellement, seul le 64 bits prend en charge le mode serveur
Les machines virtuelles serveur démarrent environ 10 % plus lentement que les machines virtuelles clients.Tourne au moins 10 fois plus vite que la machine virtuelle client; Puisque le processeur, la mémoire et le disque dur du serveur sont plus puissants que la machine cliente, une fois le programme déployé, il doit être lancé en mode serveur pour obtenir de meilleures performances. La JVM est par défaut à 1M en mode client et à 64M pour -Xmx. La JVM est par défaut 128M en mode serveur et 1024M pour -Xmx.
server:启动慢,编译更完全,编译器是自适应编译器,效率高,针对服务端应用优化,在服务器环境中最大化程序执行速度而设计。
client:快速启动,内存占用少,编译快,针对桌面应用程序优化,为在客户端环境中减少启动时间而优化; À propos de GC : En mode clien, la nouvelle génération choisit le GC série, et l’ancienne génération choisit le GC série En mode serveur, la nouvelle génération choisit le recyclage parallèle GC, et l’ancienne génération choisit le parallèle GC De manière générale, il existe deux façons de choisir notre application système : priorité de débit et priorité temps de pause, le mode GC parallèle par défaut du serveur est utilisé pour la priorité de débit, et le mode GC concurrent (CMS) est sélectionné pour la priorité temps de pause.
--------------------------------------------------------------------depuis le navigateur------------------------------------------------------------------------- JDK propose deux types de machines virtuelles : clients VM, applications serveur VM. Les deux solutions partagent la base de code hotspot de l’exécution Java, mais utilisent des compilateurs différents pour des caractéristiques de performance uniques tant pour le client que pour le serveur, ces différences incluant l’écriture de politiques en ligne et des paramètres par défaut du tas.
Bien que les serveurs et les machines virtuelles clients soient similaires, les machines virtuelles serveurs ont été spécifiquement réglées pour atteindre des vitesses maximales de pointe. Il est conçu pour exécuter des applications serveur de longue durée nécessitant la vitesse de fonctionnement la plus rapide possible, au-delà d’un temps de démarrage rapide ou d’une petite surface mémoire à l’exécution.
Le compilateur de VM client est un compilateur utilisé par les machines virtuelles classiques et les mises à jour en temps réel (JIT) via les versions précédentes du JDK. Les machines virtuelles clientes offrent des performances améliorées pour l’exécution d’applications et d’applets. Les clients hotspot des machines virtuelles Java ont été spécialement ajustés pour réduire le temps de démarrage et l’empreinte mémoire des applications, les rendant particulièrement adaptés aux environnements clients. En général, le système client dispose d’une meilleure interface graphique utilisateur.
La vraie différence se trouve donc aussi au niveau du compilateur :
Le compilateur de machine virtuelle client ne tente pas d’effectuer des optimisations plus complexes effectuées par le compilateur sur la machine virtuelle serveur, mais lors de l’échange, il faut moins de temps pour analyser et compiler un morceau de code. Cela signifie que les machines virtuelles clientes peuvent démarrer plus rapidement et nécessitent une charge mémoire plus réduite.
La machine virtuelle serveur contient un compilateur adaptatif avancé qui prend en charge de nombreuses optimisations C++ pour l’optimisation, du même type, ainsi que certaines optimisations qui ne peuvent pas être réalisées avec les compilateurs traditionnels, comme l’agression en ligne dans les appels de méthodes virtuelles. C’est un avantage compétitif et en termes de performance, un compilateur statique. Les techniques d’optimisation adaptative sont très flexibles dans leur approche et surpassent souvent même les techniques avancées d’analyse statique et de compilation.
Lorsque le mode -Server démarre, la vitesse est lente, mais une fois en cours, les performances s’améliorent considérablement, car : lorsque la machine virtuelle est en mode -Client, elle utilise un compilateur léger nommé C1, et la machine virtuelle lancée en mode -Server utilise un compilateur nommé C2, qui est relativement bien compilé que le compilateur C1, et les performances sont supérieures après service.
En général, tant que vous changez l’ordre des deux configurations de -server KNOWN et -client KNOWN,Le postulat est que les dossiers serveur et client existent tous deux dans le répertoire /jre/bin du JAVA_HOMEcorrespondant à leurs JVM respectives
|