La tâche 3 se fait en binômes. Les binômes et l'étude de cas traités sont les mêmes que pour la tâche 2. Les cas de test et le code ne sont pas modifiés, seule la github action est modifiée.
Cette tâche a 2 objectifs principaux
- modifier une github action pour exécuter plusieurs builds avec différentes configurations de la JVM
- explorer les centaines d'options (flags) de la JVM
Pour lister les flags disponibles pour votre JVM
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Pour utiliser un flag avec Maven (par exemple ici, ExtendedDTraceProbes)
export MAVEN_OPTS=" -XX:+ExtendedDTraceProbes"
Pour réinitialiser les flags avec Maven
unset MAVEN_OPTS
Posts qui documentent certains flags
- Let’s talk about Java/JVM flags
- Critical Java JVM options and parameters
- Working with the JIT Compiler
- Optimizing Performance
Une fois la tâche accomplie, les étudiants font une 'pull request' sur ce répertoire avec un répertoire de la forme 'NOM1-NOM2/', qui inclut un fichier readme.md indiquant
- le référentiel (repository) Github qui inclut la github action qui a été modifiée
- un lien vers une page (par ex. readme.md) qui documente votre travail pour la tâche 3
La date limite pour cette 'pull request' est indiquée sur la page principale du cours.