Un peu d’histoire autour de Java temps réel

Je souhaite rappelez dans cet article l’historique du Java temps réel chez Sun. Il faut savoir que la plateforme Java évolue par l’implémentation de différentes « Java Specification Requests (JSR) » via le « Java Community Process (JCP) » qui coordonne toutes ces JSRs.

Concernant le Java temps réel, une spécification appelé « Real-Time Specification for Java (RTSJ)«   indique les modifications nécessaires pour rendre la plateforme Java temps réel souple (soft) ou dur (hard) :

  • gestion strict des priorités, du scheduling et de la synchronisation des threads
  • gestion du problème d’inversion de priorité des threads
  • ajout de mécanismes asynchrones de communication
  • gestion de zones mémoires non éligible au Garbage Collecting
  • gestion du temps et des timers plus précises
  • accès direct à la mémoire physique

(Lire la suite…)

Soirée Holly CUMMINS au Paris JUG

Ce mardi 8 juin 2010, je me suis rendu au ParisJUG pour assister à la soirée de Holly CUMMINS et notamment pour écouter la présentation intitulé « Java Performance Tuning – not so scary after all » faite par Holly CUMMINS. Holly est ingénieur logiciel chez IBM au Royaume Uni et est considérée comme une spécialiste du paramétrage et de l’optimisation du garbage collector.

L’ambiance était bonne, certaines personnes avaient les cheveux bleus par fraternité avec Holly… mais aussi pour se faire offrir une bière !

(Lire la suite…)

Détecter manuellement les fuites mémoires

Voici la situation : un collègue me dit qu’une application graphique développée en Java plante en OutOfMemory durant un test sur un weekend. Après l’augmentation de la mémoire via les options Xms et Xmx, l’application plante toujours mais tient un weekend. C’est toujours le même mauvais réflexe : on augmente la capacité mémoire alors que l’idée serait plutôt de la diminuer pour détecter plus tôt le problème.

Pour détecter les ressources gaspillés ou les fuites mémoires, une méthode parmi d’autres consiste à vider la mémoire, c’est à dire faire un dump, dans un fichier afin de l’analyser. Le dump doit être au format HPROF pour être analysé soit manuellement avec un fichier texte soit automatiquement avec un outil graphique.

Dans ce premier billet sur le sujet, je vais présenter la méthode manuelle, celle qui peut sauver une après midi entière quand on est sur une carte embarqué sans outils.

(Lire la suite…)