RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Performance d'une application MVC

Forum : J2EE
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ J2EE

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM J2EE

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
mrjeronimo
Nouveau membre
Inscrit : 19/05/2008
Messages : 7
Message
#153250
Posté le 19/05/08 à 19:56
Bonjour à tous.

Ma question est autour de la performance des applications J2EE. Je voudrais qu'on m'éclaircice les apports en terme de performance que peut apporter une architecture MVC 2, comparativement à une architecture JSP/Servlets.

Centraliser toutles les requêtes vers une seule et unique servlet ne nuit-il pas à la performance de l'application?

Merci d'avance

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

ReaM
Superviseur :
- Java
Avatar de ReaM
Inscrit : 24/02/2005
Messages : 737
Message
#153255
Posté le 19/05/08 à 22:26
Bonsoir ,

Pourriez-vous décrire un peu plus votre raisonnement ? A ce que je sache tout framework qui utilise le modèle MVC ne consiste pas uniquement en une seule et unique servlet . Certes , on déclare une servlet controller pour le framework mais la dessous , une transformation s'effectue pour exploder tout ca en plusieurs servlets.

L'avantage que l'on a avec ce modèle est qu'il ne faut pas pour chaque servlet réecrire le code pour les méthodes doGet et doPost , elles sont transparentes mais toujours existantes. Le seul gain que j'y vois est en terme de développement.

Je tenterai de vous répondre plus précisément après précision de votre part.
__________________________
Image
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

ReaM
Superviseur :
- Java
Avatar de ReaM
Inscrit : 24/02/2005
Messages : 737
Message
#153260
Posté le 20/05/08 à 09:52
Bonjour ,

Après avoir "striké" le tas de bétise que j'ai écrit hier soir après une grosse guindaille ( bonjour le côté sérieux ) , je vais tenter de décoder tout cela de manière plus pertinente.

La servlet controller permet de dispatcher les actions et la redirection de page ( notamment grâce à des fichiers de configuration xml), le traitement de chaque action s'effectuera dans une classe Action - DispatchAction - etc dans le cas de Struts. Cette classe appelera la BL etc ...

A défault d'écrire plusieurs servlets ici on en implémente qu'une seule ( soit on crée sa propre servlet Controller , soit on utilise celle d'un framework). Il n'y a pas vraiment de différence de performance dans le sens où une servlet est multithread . Que l'on appelle toujours la même ou non , c'est à chaque fois une thread qui se lance.

Le gain que l'on y trouve se retrouve au niveau du temps de développement et de la structure du projet qui me parait plus propre.

J'espère avoir répondu au mieux à votre question.
__________________________
Image
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

mrjeronimo
Nouveau membre
Inscrit : 19/05/2008
Messages : 7
Message
#153264
Posté le 20/05/08 à 10:51
D'abord, je vous remercie pour votre reponse.
Comme tu dis, une servlet est monothreadée, c'est à dire qu'elle n'est instanciée qu'en un seul exemplaire par le serveur d'application.
Ce qui m'a poussé à poser ma question c'est l'interrogation suivante : l'utilisation d'une seule servlet implique le traitement de toutes les requêtes en provenance du client par celle ci. Ce qui n'est pas le cas si on en utilise plusieurs.
Ex : pour la gestion des comptes j'appelerai la servlet GestionCompteServlet.java, ainsi toutes requêtes visant le traitement de l'entité Compte sera transférée vers cette servlet là uniquement. Pour une autre entité j'aurai une autre servlet et ainsi de suite. alors qu'en MVC 2, toute requête passera par une seule et unique servlet ce qui vraisemblablement pourrais nuir à la performance.
Cependant, le fait qu'en MVC 2, les traitement sont relayés aux Actions peut avoir des effets bénéfiques sur la performance de l'appli.
Mais enfin, je ne sais quelle approche est la plus performante.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

ReaM
Superviseur :
- Java
Avatar de ReaM
Inscrit : 24/02/2005
Messages : 737
Message
#153265
Posté le 20/05/08 à 11:10
mrjeronimo dit :
Pour une autre entité j'aurai une autre servlet et ainsi de suite. alors qu'en MVC 2, toute requête passera par une seule et unique servlet ce qui vraisemblablement pourrais nuir à la performance.


Non puisque comme dit précédemment , la servlet est multi thread donc pas de lock sur les processus. Une seule classe , une seule instance mais plusieurs processus.

mrjeronimo dit :
Cependant, le fait qu'en MVC 2, les traitement sont relayés aux Actions peut avoir des effets bénéfiques sur la performance de l'appli.


On parle de dispatcher les actions vers les controlleurs adéquats grâce au(x) fichier(s) de configuration ( le mappings ).

mrjeronimo dit :
Mais enfin, je ne sais quelle approche est la plus performante.


En terme de développement et surtout de maintenance , je n'ai aucun doute en disant que c'est la méthode la plus performante dans un projet de grande envergure.En terme de performance "process" , je n'y vois pas de différence.
__________________________
Image
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

mrjeronimo
Nouveau membre
Inscrit : 19/05/2008
Messages : 7
Message
#153268
Posté le 20/05/08 à 11:39
j'y vois plus clair mtn , je vous en remercie
pour récapituler, je dirai que d'un point de vue performance, il n'y a pas vraiment de gagnant, les servlets étant multi-thread, le fait d'en avoir une avec une classe d'action par thread ou plusieurs avec une seule méthode doit être très proche.
toutefois, une question me revient, si au niveau de la méthode init() d'une servlet j'instancie un objet d'une classe X, cet objet là sera-t-il crée autant de fois que le nombre de thread lancé?
a ce que je sache, si la servlet est crée en un seul exemplaire par le serveur d'application, sa méthode init() est éxécutée à chaque appel.

Merci d'avance !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

ReaM
Superviseur :
- Java
Avatar de ReaM
Inscrit : 24/02/2005
Messages : 737
Message
#153269
Posté le 20/05/08 à 11:52
Ça sera une information à vérifier , mais si je ne me trompe pas , lorsqu'on deploy une application web , les servlets sont load une seule fois ( web.xml ) et l'appel à la méthode init() ne s'effectue qu'une et une seule fois ( il n'y pas vraiment de notion de constructeur dans une servlet ).

Je vais me renseigner un peu plus en détails , ce sont des aspects techniques auxquels j'avoue ne plus tenir compte au cours de mes développements . On remercie les frameworks de nous fournir une totale abstraction de ce qu'il se passe derrière tout ce petit monde.
__________________________
Image
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : rien ne fonctionne et personne ne sait pourquoi...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

mrjeronimo
Nouveau membre
Inscrit : 19/05/2008
Messages : 7
Message
#153270
Posté le 20/05/08 à 12:07
C'est vrai que ce sont des détails dont on se préoccupe pas trop. Si je cherche à m'informer dessus, c'est parce que je cherche à définir les point faibles d'une application que je dois migrer vers une nouvelle architecture.

Je vous remercie infiniment pour le temps que vous m'avez consacré.

Bonne journée !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM J2EE



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.