OVH Cloud OVH Cloud

instanciation ou pas ?

1 réponse
Avatar
Thomas DELHOMENIE
Salut,

j'ai un projet à réaliser qui permet de gérer des données envoyées par un
appareil sous forme d'une requete http. J'ai une servlet qui gère cette
requete. L'opération à réaliser est fonction des paramètres de la requete.
Pour chaque parametre j'ai une classe différente qui regroupe les operations
à effectuer. C'est pour ces classes que je me pose des questions.
Dans le cas où plusieurs requetes avec le meme parametre peuvent arriver en
meme temps (et donc utiliser plusieurs fois la meme classe en meme temps),
je me demandais comment cela se passe. Est ce que je dois instancier cette
classe pour chaque requete ? Ou est ce que je peux m'en servir en static ?

Je sais pas si c'est très clair, mais bon je tente quand même, on sait
jamais... :-)

Tant qu'on y est, j'en mets une autre :
J'ai une classe qui possède un certain nombre de méthode. Je crée plusieurs
objets de cette classe. Chaque objet utilise seulement une petite partie des
méthodes dérivées chacune. Je me demandais si cela avait un impact au niveau
de la taille mémoire utilisée ou des performances. Est ce que le nombre de
méthodes inutilisées d'un objet influe sur les performances de l'appli ?

Merci d'avance

Tom

1 réponse

Avatar
Question 1:

tu utilise probablement l'API servlet et donc tu instancies les objets dont
tu parles (directement ou indeirectement) depuis la methode doGet ou doPost
de ta servlet. Si tes objets ont un etat, cad des prorietes dont l'etat doit
etre conserve pendant la duree du traitement (ou pire entre 2 requetes), ils
ne peuvent etre statiques car ils seront effectivement partages entre les
differentes requetes: dans ce cas instancie une classe a chaque fois (ou
eventuellement utilise un pool, ou si les utilisateurs sont identifies et
font plusieurs requetes successives chache en une instance dans chaque
session utilisateur...). Si les methodes appelees ne font pas appel a des
prop. dans la classes, elles peuvent etre statiques (il s'agt de simples
helpers dans ce cas).

Question 2:
ca depend probablement de ton compilateur, mais ca n'a certaiement pas un
effet tres sensible (hormis sur le volume des.class generes)

"Thomas DELHOMENIE" a écrit dans le message
de news:j3t_b.26367$
Salut,

j'ai un projet à réaliser qui permet de gérer des données envoyées par un
appareil sous forme d'une requete http. J'ai une servlet qui gère cette
requete. L'opération à réaliser est fonction des paramètres de la requete.
Pour chaque parametre j'ai une classe différente qui regroupe les
operations

à effectuer. C'est pour ces classes que je me pose des questions.
Dans le cas où plusieurs requetes avec le meme parametre peuvent arriver
en

meme temps (et donc utiliser plusieurs fois la meme classe en meme temps),
je me demandais comment cela se passe. Est ce que je dois instancier cette
classe pour chaque requete ? Ou est ce que je peux m'en servir en static ?

Je sais pas si c'est très clair, mais bon je tente quand même, on sait
jamais... :-)

Tant qu'on y est, j'en mets une autre :
J'ai une classe qui possède un certain nombre de méthode. Je crée
plusieurs

objets de cette classe. Chaque objet utilise seulement une petite partie
des

méthodes dérivées chacune. Je me demandais si cela avait un impact au
niveau

de la taille mémoire utilisée ou des performances. Est ce que le nombre de
méthodes inutilisées d'un objet influe sur les performances de l'appli ?

Merci d'avance

Tom