Problème mémoire JVM pour un simulateur de navigation ! ! ! !

Flaw35 Messages postés 2 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 5 mars 2005 - 5 mars 2005 à 12:07
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 6 mars 2005 à 19:41
Bonjour,

Je suis actuellement entrain de dévelloper dans le cadre d'un projet étudiant, un simulateur de navigation marimtime.



Le but de ce simulateur (en 2D au départ) est de pouvoir se déplacer
sur une carte électronique( créer avec 1 éditeur de cartes que je
dévellope aussi). Cette carte est divisée en points qui eux meme
conttiennent plusieurs informations (la latitude, la longitude, la
profondeur d'eau, le courant, la force du vent, les coefficients de
résistance...).



Le but est donc d'avoir une carte avec toutes ses caractéristiques qui est enregistrée avec un fichier XML.

Mais le problème est qu'en créant le fichier XML, il y a un problème de
mémoire de la JVM. du style "out of memory" je crois.Le fichier est en
faite bien trop gros, car je voudrais un point par pixel.donc avec un
espace de carte de 800*600 çà fé 480000 points a enregistrer. et la
mémoire n'en peux plus.



Je voudrais alors savoir si quelqu'un à déjà pu rencontrer le même type
de problème et savoir si quelqu'un avait une solution a mon problème.

La solution existe forcément car dans les jeux 3d il y arrive bien donc je me is que c forcément possible!!!!!!!!!!!



Merci d'avance

1 réponse

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
6 mars 2005 à 19:41
Salut



Peut-être ta façon de faire est-elle tout simplement à reprendre un peu
... même en agrandissant ta pile je pense que tu dépassera de toute
manière ton fichier XML ... par conséquent pourquoi ne pas faire ton
fichier XML en le créant toi même à la main avec un simple FileWriter
ou autre ...



Egalement si ton application venait àse généraliser je te
recommanderais d'utiliser une base de données !!! PostgreSQL me semble
être un excellent choix puisqu'il dispose déjà de type pour les données
géographique, tu pourras d'ailleurs compléter ces données par tes
propres types perso ou faire de simple table avec toutes tes infos ...



En tout cas cette solution est beaucoup plus adaptée surtout si ensuite
tu veux faire des calculs sur l'ensemble de tes données, également tu
n'as plus besoin de parser tes données au lancement de l'application
(SAX est une obligation dans ton cas ...) et d'avoir 1Go de RAM juste
pour ton application ...



Egalement cette solution te donne le droit de fair eun peu de streaming
... pour ce qui est des jeux 3D ... c'est une autre affaire et le
nombre de point est beaucoup moins important et surtout stockés dans
des structures spécifiques qui permettent pour la plupart de rester
dans le GPU (et en plus compiler pour l'exécution et compressé ...) ou
de pouvoir faire un streaming sur le disque dur ...



A moins que tu es à échanger des documents entres différentes parties
ou à mettre en standard ton protocole (ce qui peut également se faire
en binaire !), l'utilisation du XML est ici trop couteurse en terme de
lecture, parsage et mémorisation pour être réellement applicable ...
quand on fait du XML pour faire du XML on le regrette souvent assez
vite ... XML c'est une solution et également une mode !! Attention de
l'utilisé uniquement lorsque cela est indispensable ... je suis assez
bien placé pour dire ça (hein flo ... ;-) )



@+
0
Rejoignez-nous