Archives de
Tag: profiling

jOOQ tip: ne convertissez pas JSONB en String

jOOQ tip: ne convertissez pas JSONB en String

Il y a quelques semaines, en investiguant de possibles améliorations de performance pour le backend JDBC de Kestra, j’ai remarqué qu’une méthode qu’on utilisait pour mapper une entité à persister en base de données dans sa représentation JSONB prenait beaucoup de temps dans nos profiles CPU. Dans le flame graph suivant, on peut voir que la méthode JdbcQueue.map() compte pour plus de 21% des échantillons et la méthode Repository.map() pour 3.2% des échantillons d’un profile CPU utilisant async-profiler. Ces deux…

Lire la suite Lire la suite

Profiler une image native GraalVM avec perf

Profiler une image native GraalVM avec perf

L’outil GraalVM native-image permet de générer un exécutable natif (ou image native) depuis votre application Java. Cet exécutable natif va démarrer très rapidement et avoir une empreinte mémoire beaucoup plus faible qu’une application Java traditionnelle; au prix de performances en pic réduites et d’un temps de création de ce package natif assez élevé. Plus d’informations sur les exécutables natifs ici. Un exécutable natif contient une JVM minimaliste appelée SubstratVM, celle-ci a quelques limitations : Support partiel de la reflection Support…

Lire la suite Lire la suite