Le 10 février 2012 22:46, Claude <claude.mar...@gmail.com> a écrit :
> j'ai lancé en ligne de commande juste avec java -jar josm-tested.jar plus de
> plantage mais il est vrai qu'il a aparement écrasé mon fichier de config car
> mes paramètre OAuth ont suaté

Cela est un signe clair que lors des bloquages, OSM a manqué de
mémoire pour réaliser une opération, et ce manque de mémoire a
provoqué une corruption des données qu'il a voulu enregistrer dans tes
paramètres.

J'ai déjà remarqué que même avec de petits fichiers OSM, 1Go de RAM
allouée pour la machine Java c'est un peu juste pour JOSM: le garbage
collector de Java n'arrive plus à gérer les "générations" d'objets
alloués efficacement, du coup la fragmentation augmente très
sensiblement dans l'ancienne génération, et il finit par manquer de
place pour la nouvelle génération.

Le garbage collector de Java passe alors son temps à recompacter
l'ancienne génération, ce compactage étant beaucoup plus couteux en
ressource CPU et en temps, et opérations de copies en mémoire, que le
compactage de la nouvelle génération (qui n'est qu'une file cyclique).
C'est encore plus vrai sur un système avec un seul processeur car le
compacteur de l'ancienne génération monopolise le seul thread actif et
bloque tout autre thread dans le processus Java (tout en devant aussi
céder tu temps au reste de l'OS et aux autres applis du bureaux et
services en cours).

Le poblème ici avec JOSM c'est la taille assez importante de
"l'ancienne génération", qui contient en particulier le code Java
compilé en cours d'exécution (JOSM est une appli volumineuse en code,
avec tous ses plugins), et ses caches de données et aussi les données
de rendu du calque précalculé à l'écran. La nouvelle génération en
revanche contient tous les objets alloués en permanence pour la
génération des objets XML ou leur décodage et leur affichage, ou leur
activation coloré à l'écran et dans les fenêtres de propriétés, ou
calculés temporairement en très grand nombre par les fonctions de
recherche et de validation. Un fichier OSM chargé sera alloué dans des
objets au début dans la nouvelle génération, mais rapidement
transférés vers l'ancienne génération (d'autant plus vite que la
taille de machine virtuelle -Xmx est petite)

JOSM pour moi n'est plus recommandé avec moins de -Xmx1500 car ses
gestionnaires d'exception en cas de débordement mémoire ne ratrapent
pas toujours bien la situation notamment dans les données qu'il
sauvegarde sur fichier ou envoie au serveur.

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à