Vous êtes sur la page 1sur 14

Comparaison de performance entre JAVA et

JNI pour une implemtation optimale des


micro-noyaux

Anass REBBAG - Miloud SOUIDI


2022/2023
Introduction & Definitions

1. micro kernel
2. Foreign Function Interface FFI
3. Java Native Interface JNI
4. Just In Time compiler JIT

2
Problématique

Problème 1 Problème 2 Problème 3


Augmenter le niveau de Le langage JAVA manque des Un cout additionnel s'impose
parallelisme dans le HPC methodes et des librairies pour lors de l'utilisation des

une programmation bas niveau méthodes depuis la JNI,
utiliser le JIT compiler dans la
puisque le code ne peut pas
JVM (solution dynamique) Utiliser l'interface JNI comme être aligné.

une FFI (solution statique)

3
Problématique

Pour bénéficier d'une meilleure optimisation statique (solution JNI), ce surcoût d'appel
doit être compensé par la quantité de calculs effectués
à chaque invocation JNI.

4
1.Indicateurs de performances

5
2. Optimisations du code
2.1. Optimisation asymptotique
2.1.1. Vectorisation et execution hors ordre

6
2. Optimisations du code
2.1. Optimisation asymptotique
2.1.2. Data alignment

Cette stratégie a pour but d'exploiter la


vectorisation vue auparavant.
Chaque élément est stocké dans une adresse,
multiple de sa taille. Il s'agit d'une tache de JIT
compiler

7
2. Optimisations du code
2.1.Optimisation par reduction du cout d'invocation
2.2.1. Java method inlining

8
2. Optimisations du code
2.1.Optimisation par reduction du cout d'invocation
2.2.2. JNI & native memory

JAVA JNI C/C++

9
3. Benchmark

10
3. Benchmark

11
3. Benchmark

12
3. Benchmark

13
Conclusion

Vous aimerez peut-être aussi