Les tableaux de type primitif dans le tas ou la pile ?

Les développeurs savent que toutes les déclarations locales de type primitif dans une méthode sont désallouées dès la sortie de la méthode car les allocations sont faites dans la pile (stack). Exemple :

private void test() {
   int i = 1979;
   long j = 1989;
}

Les variables « i » et « j » seront désallouées dès la sortie de la méthode « test()« . Mais quand est-il des tableaux de type primitf ?

(Lire la suite…)

Programmation Java sur GPU : c’est possible !

Pour une fois, l’article ne parle ni de Java temps réel ni de Java embarqué mais plutôt de la possibilité d’écrire du code Java sur les processeurs graphiques (GPU) afin de bénéficier de leur puissance de calcul.

Aujourd’hui, pour programmer sur des GPUs, les deux principaux langages disponibles sont OpenCL et CUDA. Il existe donc deux solutions pour le Java :

  • l’API Aparapi (A PARallel API), développée conjointement par AMD et Nvidia, pour transcrire le code Java en OpenCL pour s’exécuter sur le GPU
  • l’API jCUDA pour s’interfacer directement avec CUDA

Voici quelques liens sur Aparapi :

Voici quelques liens sur jCUDA :

L’intérêt de la programmation Java sur GPU est de bénéficier de la puissance de calcul de celui-ci mais le problème commun de cette méthode est le goulet d’étranglement du bus entre le CPU et le GPU qui peuvent limiter les transferts de données.

AppDynamics : Memory Leaks, Thread Deadlocks, etc.

L’application AppDynamics est une solution de gestion des performances de votre application pour les environnements distribués. Vous allez me dire que cela n’a rien à voir avec le temps réel ou l’embarqué et vous avez raison ! Parmi les fonctions proposées, « Application Mapping« , « Business Transaction Detection« , « Transaction Flow Monitoring« , « Deep Diagnostics » et « Policy Engine« , j’ai regardé plus particulièrement les possibilités de leur « Deep Diagnostics » : « Memory Leaks« , « Thread Contention & Deadlocks« , « Connection Pool Leaks« , « Hardware Performance Issues » et « Garbage Collection & Heap Issues« .

Les outils permettant de détecter des fuites mémoires, des problèmes d’inter-blocage sont suffisamment rares pour mentionner celui-ci !

L’article « New AppDynamics Software Hunts Memory Leaks, Finds Root Cause, and it’s All in Production » de DZone présente les atouts d’AppDynamics.

Malheureusement, je n’ai pas encore pris le temps de tester cet outil sur une application temps réel…