LCC 221 - Massacre à la tronçonneuse
Guillaume, Arnaud et Emmanuel descendent dans les profondeurs des garbage collectors, Java 14, GraalVM 19.3 (Java is back!) et bien sûr pleins d’autres choses !
Enregistré le 5 décembre 2019
Téléchargement de l’épisode LesCastCodeurs-Episode-221.mp3
News
Langages
GraalVM 19.3 with JDK 11 Support.
GraalVM se met aussi à WebAssembly
Microsoft ready to contribute to OpenJDK
Trois JEPs prévus pour être intégrés à Java 14 :
- JEP 305 : Pattern Matching for instanceof
- JEP 359 : Records
- JEP 343 : Packaging Tool dans l’Incubator
Stephen Colebourne râle sur le nouveau switch
Tricher le GC de Go avec du poids mort
- le GC se déclenche tous les 2x de heap
- si pas d’alloc, ca veut dire qu’il vide jusqu’à 1x mais déclenche des GC super fréquemment
- donc en allouant (virtuellement) un tableau de 10Go, on réduit le temps entre GC
- le cout d’un concurrent mark sweep c’est de marquer les objets vivants (les morts ont peu de cout)
- et les co-routines pendant une phase de mark-sweep doivent faire un travail de mark ce qui les ralenties
- donc moins de GC veut dire plus rapide
- c’est le coût à payer pour un GC avec 1 ou peu de paramètres.
Shenandoah: éliminer les mots de pointeurs en avant
- Shenandoah bouge les objets sans mettre à jour ses pointeurs
- juste garde une copie dans l’objet même de ses references
- puis met à jour les references de manière concurrente en parallèle de l’appli
- et enfin peut virer les objets.
- par défaut Shenandoah demande un word supplémentaire par objet
- si le word == l’objet, on est normal, sinon il pointe vers la nouvelle copie de l’objet
- 5 à 10 % de mémoire supplémentaire en pratique
- peut réutiliser le mark word mais comparaison chère surtout à faire à chaque read-barrier
- uniquement pendant un GC et sur les objets dans des collections set => peu fréquents
- dans les tests le code de décoding supplémentaire est pas visible dans les benchmarks
- mais ils ont éliminé les read barrier en load-reference-barrier qui sont moins fréquentes en nombre d’objets
- meilleure densité mémoire, moins de pression sur le CPU cache, plus de throughput
Librairies
- Eclipse Collections, 10 raisons de les utiliser.
- Mapper des erreurs HTTP du REST client vers des exceptions avec Eclipse MicroProfile
- vert.x 3.8.4
- Spring Boot 2.2.1, Spring Framework 5.2.2 and 5.1.12.
Micronaut en Trial dans le tech radar de ThoughtWorks et Quarkus en assess
Middleware
- un ensemble de projets (Camel, Camel K, Camel extensions pour Quarkus)
- nouveau site web
- Java 11 support et abandon de Java 8 durant 2020
- Camel core modularisé et moins de classes à démarrer, réduire la reflection
- support de GraalVM via Quarkus
- DSL typesafe de définition de endpoint
- Cœur réactif
- Intégration avec microprofile
- nouveaux composants ( - graphql - 4 more AWS components - Debezium components)
Infrastructure
Sonatype racheté
Annonce par Sonatype du rachat
- par une boite de private equity…
- il est temps de backuper central
Docker à la découpe. Docker Enterprise racheté par Mirantis
Les fondateurs de Google tournent la page
Cloud
AppEngine Java 11 Runtime FAQ.
Pas bien les Fat JAR dans les images de conteneur
Helm 3 est sorti
Web
.org est vendu, sauvons les .org ( Ils ont réussi à fâcher Kohsuke ).
Data
R2DBC 0.8
Exposer les entités persistées dans vos API ou pas
- Plus simple, un seul objet
- plus compliqué des détails d’implémentations (nouveau champ d’un cote ou de l’autre)
- accumulation d’annotations pour abstraire ses modèles (JSON, JPA)
- associations gérées en proxy dans JPA et en id ou null dans API
- V2 de l’API
- agrégation des données dans l’API
Outillage
La matrice arrive dans Jenkins Pipelines.
Jenkins Health Advisor par CloudBees.
L’expérience zsh de Julien Ponge
Cédric explose le mythe du scripting vs déclaratif dans Gradle
Comment éviter l’enfer des dépendances avec Gradle 6
Méthodologies
L’humain est résiliant aux chocs de la vie mais pas tant que cela au chômage de longue durée
- étude
- Plus on est dans un pays développé, plus on est heureux
- on est plus heureux maintenant qu’il y a quelques années (croissance)
- plus on est riche, plus on est heureux
Loi, société et organisation
Save your code on Software Heritage Archive.
Conférences
- Snowcamp du 22 au 25 janvier 2020
- DevFest Paris le 14 février 2020 - Le CfP est ouvert.
- Breizhcamp du 25 au 27 mars 2020 - Le CfP est ouvert
- Devoxx France du 15 au 17 avril 2020 - Le CfP est ouvert - Les places sont réservées en 57h
- RivieraDev du 13 au 15 mai 2020 - Le CfP est ouvert
Nous contacter
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/