IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Combien de mémoir risque de prendre mon programme ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut Combien de mémoir risque de prendre mon programme ?
    Voila, je travaille sur un programme en liaison avec une base de données. Quasiement toutes les opérations feront appelle à la base, avec parfois des opérations du type O(n²).
    Mon souci est de voir si je peux charger une fois ma bd dans une sorte de bd temporaire construite avec des objets, et de travailler sur ces objets. En gros si j'ai la table Nouriture avec comme paramètres nom, type, date peremption, et gout, cela se transformera en un objet ayant ces 4 paramètres la.
    Mais, cela risque de poser soucis si la bd grossie trop.

    La bd sera constitué de la manière suivante :
    Une liste de questions, en général maximul 200. Une question est composé d'un nom, un code, un numero, un boolean, et une liste de réponse, allant de 2 à maximum 50. La question possede également une liste d'un autre objet, mais celui ci est constitué de "pointeur" vers les questions et les réponses, donc réellement de place en plus.
    Chaque réponse possede les mêmes attributs, avec en plus un entier, et un "pointeur" vers la question qui le concerne.
    Une liste de Joueur, pouvant aller jusqu'à 10 000 maximum (à priorie encore une fois). Un joueur est composé d'un nom, d'un numéro, et possede une liste de ValeurRépondu. Une valeur répondu elle est composé d'un pointeur vers une question, et d'une liste de pointeur vers des réponse.

    J'ai d'autre objet, mais ils ne sont pas significtife. A priorie, en Java, quelle place cela prendra il ? Je ne sais pas si cela dépendra des platformes, mais cela doit tourner sur toutes les platformes possible (de Win 98 à vista, MacOs X, et Linux). Et de manière général, comment puis je calculer, de manière théorique, la place prise par un programme ?

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Il existe une approche qui dit que, la mémoire n'étant pas chère de nos jours, on construit des programmes sans se préoccuper de la mémoire, et s'il n'y en a pas assez, cela coutera toujours moins cher d'acheter d'autres barettes que de revoir le programme.

    Bon...

    Surtout qu'il n'existe pas, à ma connaissance, d'approche très fiables pour savoir à l'avance combien de mémoire un programme occupera, et particulièrement en java. Il peut y avoir tant de mises en oeuvre différentes...

    Si tu veux tenter de te donner un outil d'évaluation, je le verrais à partir de Instrumentation.getObjectSize ; il y a aussi un bon profiler gratos dans NetBeans. Pour la théorie - je pense naïve, d'autant que ça doit commencer à dater - il y a Sizeof for Java.

    Il me semble qu'il te faudra surtout préciser de façon très technique les outils que tu emploieras : quelle base de données ? dans quel paramétrage ? quel OS ? Etc.

    Et rien que cette étude te coutera déjà plus cher que l'achat de barette. Le monde est rude. Mais peut être te sera-t-elle utile pour d'autres choses ?...

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Par défaut
    Il est hors de question pour mes futures utilisateurs d'avoir a acheter de la mémoir, le bute étant de créer un programme gratuit pour des assos, ca serait assez contradictoire ^^
    Sino, je prefers le savoir avant, vu que cela risque de changer pas mal de chose au programme. Si je peux stocker tout le contennue de mes tables à l'interieur de mes objets, ca ne posera pas de soucis. Sinon, je serais obliger de multiplier les requettes à la bd ce qui m'enuie un peu. Enfin je vais essayer de voir si je ne peux pas simmuler l'entré de plusieurs milliers de personnes et de questions dans le programme pour voir comment il réagit.
    Merci bien pour les conseils en tout cas.

Discussions similaires

  1. Utilisation de la mémoire par mon programme
    Par Haldahir dans le forum LabVIEW
    Réponses: 1
    Dernier message: 07/10/2011, 18h41
  2. Comment récupérer la consommation mémoire de mon programme
    Par youpileouf dans le forum Threads & Processus
    Réponses: 6
    Dernier message: 11/09/2010, 18h15
  3. Réponses: 5
    Dernier message: 29/12/2007, 00h03
  4. Réponses: 3
    Dernier message: 28/06/2005, 09h07
  5. Réponses: 11
    Dernier message: 17/03/2003, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo