Optimisation JVM : Une histoire de VarInt aux résultats inattendus

2025-07-25

Lors de l'optimisation de code Java sur une plateforme massive de traitement de données distribuées, l'auteur a identifié l'encodage VarInt comme une cible d'optimisation potentielle. Il a écrit un encodeur VarInt hautement optimisé utilisant des instructions SIMD, obtenant une accélération de 4x dans les benchmarks. Cependant, de manière surprenante, l'optimisation n'a apporté aucune amélioration en production. Le coupable ? Le benchmark utilisait des nombres aléatoires, alors que les nombres réels ont tendance à être beaucoup plus petits, rendant les performances du pire cas de l'algorithme sans intérêt en pratique. Le changement a finalement été annulé, mais l'expérience a servi de preuve de concept précieuse pour le développement et la mise en production d'optimisations JIT personnalisées.

Lire plus
Développement Optimisation Java

Programmation dynamique : ce n’est pas ce que vous pensez

2025-07-21

Le terme « programmation dynamique » dans les études d’algorithmes est souvent source de confusion. « Dynamique » ne fait pas référence à sa variabilité, mais plutôt à l’aspect planification de la « programmation », provenant des années 1950, lorsque les ingénieurs planifiaient les projets de construction comme des « planifications de processus ». En informatique, la programmation dynamique signifie planifier l’ordre des sous-étapes nécessaires pour résoudre un problème. Par exemple, pour calculer la suite de Fibonacci, le « programme » est la séquence d’étapes pour calculer fib(2) à fib(10) dans l’ordre des dépendances. Cela peut être planifié de haut en bas ou de bas en haut ; le plan final est le même, et les deux sont considérés comme de la programmation dynamique. Richard Bellman a inventé ce terme pour éviter l’aversion d’un secrétaire à la Défense pour la « recherche mathématique », choisissant habilement « programmation dynamique » parce que l’adjectif « dynamique » ne peut pas être utilisé de manière péjorative.

Lire plus
Développement

Analyseur de Fréquence de Mots du Kernel Linux

2025-06-16

Un site Web utilise un puissant moteur de recherche pour analyser la fréquence des mots, des noms et des fonctions dans le code source du noyau Linux. Les utilisateurs peuvent saisir des mots clés (prenant en charge les caractères génériques et les expressions régulières) pour afficher les résultats. Le site Web fournit également des graphiques interactifs (nécessite l'activation de JavaScript) pour une représentation visuelle des résultats de l'analyse. Ceci est très utile pour rechercher le noyau Linux ou comprendre sa structure de code.

Lire plus