Pourquoi Java n'est-il pas facile à déployer à chaud ?
扔个三星炸死你2017-06-14 10:51:37
0
3
875
Ma question est Je modifie le code Java, puis la requête de page est exécutée, et le serveur la compile automatiquement en bytecode et l'envoie à la jvm pour exécution. Pourquoi devons-nous redémarrer la jvm pour exécuter le code modifié ?
Java propose de nombreuses solutions de déploiement à chaud. https://www.google.com/search...
Mais le déploiement à chaud affectera les performances, et dans un environnement de production, la fréquence de déploiement du code Java est très faible.
Ainsi, le déploiement à chaud est généralement activé dans l'environnement de développement.
La compilation fréquente de machines virtuelles occupera la mémoire d'exécution de Jvm, affectera le GC et les performances du site Web seront réduites
L'essence du déploiement à chaud est de remplacer la classe, ce qui signifie que l'ancienne classe doit être expulsée de la mémoire et la nouvelle classe rechargée. Cela implique de décharger la classe, et l'une des conditions pour décharger une classe est qu'elle soit chargée. ClassLoader peut être récupéré par le garbage collection. D'un autre côté, si le ClassLoader ne peut pas être recyclé, Java ne peut être que redémarré.
Java propose de nombreuses solutions de déploiement à chaud. https://www.google.com/search...
Mais le déploiement à chaud affectera les performances, et dans un environnement de production, la fréquence de déploiement du code Java est très faible.
Ainsi, le déploiement à chaud est généralement activé dans l'environnement de développement.
La compilation fréquente de machines virtuelles occupera la mémoire d'exécution de Jvm, affectera le GC et les performances du site Web seront réduites
L'essence du déploiement à chaud est de remplacer la classe, ce qui signifie que l'ancienne classe doit être expulsée de la mémoire et la nouvelle classe rechargée. Cela implique de décharger la classe, et l'une des conditions pour décharger une classe est qu'elle soit chargée. ClassLoader peut être récupéré par le garbage collection. D'un autre côté, si le ClassLoader ne peut pas être recyclé, Java ne peut être que redémarré.