2010-12-12 5 views
1

J'ai une question sur ma toute nouvelle application Web Java. Dans un serveur web, quel est le plus gros problème pour un site qui a augmenté vos visites tous les jours? La mémoire est-elle un problème dans le futur? Mon application utilise un simple J2EE, Tomcat, JPA et Hibernate.Comment fonctionne la Java JVM?

J'étais développeur PHP, et pour chaque visiteur de mon site, j'utilise un peu plus de mémoire, et en Java, comment ça marche?

+0

Que demandez-vous exactement? Quels sont les problèmes les plus fréquemment rencontrés par un développeur J2E? –

+0

Il se demande peut-être que ça risque de manquer de ressources ... mémoire/temps d'exécution ... Ce que ça pourrait être et comment y faire face – lisak

+0

Oui, c'est ça lisak! – Marcos

Répondre

1

Comme PHP, les applications Web Java utilisent un peu de mémoire pour chaque requête simultanée. Ainsi, plus les requêtes s'exécutent simultanément, plus l'empreinte de la mémoire devient grande. La quantité totale de mémoire requise pour certaines charges dépend de la rapidité avec laquelle chaque requête est traitée, car un traitement plus rapide signifie moins de demandes simultanées. Je suppose également qu'une application web PHP utilisera très peu de mémoire initiale au démarrage, mais utilisera plus de mémoire pour chaque requête par rapport à une application web Java. La cause en est que l'application Web Java conserve généralement plus d'objets préchargés et que les API telles que Hybernate sont souvent configurées pour utiliser la mise en pool de connexions à la base de données et les caches d'objets.

1

Cela dépend du nombre d'objets que vous utilisez ... en java c'est généralement un problème de mémoire, qui est dû au fait que vous créez un modèle DOM de documents par exemple.

Mais s'il s'agit d'une simple application web, le problème devrait être le fait qu'il y a toujours une instance de servlet qui gère les requêtes, donc vous ne perdriez pas de mémoire, mais cela deviendrait très lent. Les threads de tomcat devront attendre que la requête soit traitée pour qu'une autre soit exécutée.

Il y a simplement des limites pour le nombre de requêtes par seconde ... Mais comme je l'ai dit, il y a plus de chances que vous n'ayez plus de mémoire.

+0

Javascript utilise un DOM, les servlets Java ne le font pas. – Kdeveloper

+0

C'était un exemple de comment il pouvait sortir de la mémoire. Je suppose que l'application fait quelque chose. Non seulement afficher du contenu. Btw Hibernate est très bien optimisé, ce n'est généralement pas le problème ... en comparaison avec le framework PHP Symfony par exemple qui consomme beaucoup de mémoire et d'exécution lui-même. – lisak

+0

Pourriez-vous m'expliquer comment créer des modèles DOM de documents peut créer un problème de mémoire? Je fais l'analyse de document et suis confronté à des problèmes de mémoire (ainsi que CodeCache) sur mon serveur alors qu'il fonctionne correctement sur mon PC local. Votre commentaire semble être intéressant pour moi. – Waylander