Vue lecture

Profileur mémoire MALT 1.6.0 et support de Python

MALT c'est quoi ?

L'optimisation est une activité connue de bien des développeurs, fouiller, chercher dans son code, pour, peut être, gagner un peu de performance (beaucoup, parfois). Dans cette tâche ardue, face à des codes grandissants, massifs, utilisant de nombreuses bibliothèques externes, un outil central dans ce travail de fourmi : le profileur.

Le profileur fait partie des outils importants pour le développeur qui se soucie des ressources qu'il utilise. Il lui permet de chercher les points chauds dans son code, comprendre le cout de chaque fonction, chaque ligne implémentée. Bien des outils s'intéressent à une chose : bien utiliser votre processeur.

Mais que se passe-t-il si vous rencontrez des difficultés avec l'utilisation de votre mémoire ? Si vous pensez mal utiliser la fonction malloc() du C ou l'opérateur new du C++ ? Si vous avez oublié qu'une de vos variables globales occupe 10 Go (surtout en Fortran) ?

Publié il y a quelques années MALT (licence CeCILL-C) permet de répondre à la question en cherchant toutes les allocations mémoires faites par votre code. Cet outil avait fait l'objet d'un article sur LinuxFR en 2018 lors de sa mise en open source : Profileurs mémoire MALT et NUMAPROF.

Versions 1.6.0

Avancées

Depuis, cet outil fait son chemin avec l'ajout du support de Rust ainsi que nombreuses corrections et ajouts tels que la possibilité de dumper le profile mémoire juste avant que le système ne soit plein.

malt -o dump:on-sys-full-at=80% -o watch-dog=true ./mon_programme

# également :
#  -o dump:on-app-using-rss=10G
#  -o dump:on-app-using-virt=80%
#  -o dump:on-app-using-req=500M

La possibilité de suivre les appels à mmap, mremap, munmap si vous les appelez directement dans votre code au lieu de laisser malloc faire son travail.

Support de python

MALT a initialement été développé dans le contexte du calcul à haute performance — HPC (High Performance Computing) donc surtout pour le C / C++ / Fortran / Rust.

Dans la communauté scientifique, nous voyons dans les laboratoires de plus en plus fleurir l'usage d'un langage à priori bien éloigné de nos prérogatives de performances : Python.

Dans un cadre de calcul scientifique, il est souvent utilisé plutôt comme un wrapper permettant d'appeler et d'orchestrer des bibliothèques en C /C++ / Fortran, elles, performantes. Quoi que l'usage amène aussi à l'écrire de certaines parties du code en Python grâce à Numpy ou Numba pour accéléré la partie calcule sur des tableaux ou autres frameworks d'exploitation des GPU.

La version 1.6.0 de MALT vient d'ajouter le support (encore quelque peu expérimental) natif de Python permettant d'analyser un code pur python ou mix Python / C / C++…. Il s'agit pour l'instant de la première version avec ce support, il reste donc du travail.

Sont supportés les versions Python supérieures à 3.11 ainsi que les environnements Conda / Anaconda / Venv. À l'heure de rédaction de cet article, cela comprend les versions 3.11 à 3.14.

MALT étant orienté C / C++, il ne supporte que Linux comme système d'exploitation. (NdM: la causalité évoquée ici devrait faire réagir des développeurs d'autres systèmes libres notamment :))

Utilisation sur Python

Si la commande malt fonctionne parfaitement, il est recommandé d'utiliser le wrapper malt-python qui adapte quelques configurations spécifiques à Python non encore automatiques.

malt-python ./script.py

# équivalent à 
malt --profile python-default ./script.py

# liste des profiles
malt --profile help

# Afficher le profile
malt-webview ./malt-script-py-6889.json

Profilage rapide

Notons que l'overhead de MALT est important en Python du fait du large nombre d'allocations générées par ce langage et de la méthode de résolution des piles d'appels pour retrouver les lignes dans votre code. Ces détails d'analyse peuvent être désactivés via :

# Désactivé complète de l'analyse des piles
malt-python -p python-no-stack ./my_script.py

# Analyse des piles par "sampling"
malt-python -p python-sampling ./my_script.py

Nouvelle interface

La version 1.6.0 arrive également avec une nouvelle interface graphique avec un code remis à jour
par rapport à sa version originale vieillissante.

Capture annotation python

Profil statique

Pour ceux qui voudraient échanger les profils avec d'autres sur d'autres OS, il est possible depuis la 1.6.0 de générer une version statique des pages de l'interface (hors annotation des sources et arbre d'appel navigable) via :

# Toues les pages possible en statique
malt-webview -static ./report malt-progr-123456.json

# Seulement la page de résumé.
malt-webview -static-summary ./report malt-progr-123456.json

Installation

MALT n'est pas encore disponible dans les distributions classiques, vous devez donc le compiler et l'installer à la main. Le nombre réduit de dépendances obligatoires en fait un outil relativement facile à installer.

On trouvera la procédure dans la documentation du projet.

Documentation

La documentation a été complètement ré-écrite et disponible sur le site officiel : documentation.

Outils similaires pour Python

Découvrir un outil est aussi l'occasion d'en découvrir d'autres. Restons dans le monde du Python, si MALT ne vous convient pas vous trouverez peut-être votre bonheur avec les outils suivants et complémentaires à MALT et eux totalement dédiés au Python toujours pour la mémoire :

  • Memray (Apache Public License 2)
  • Scalene (Apache Public License 2)

MALT se positionne par rapport aux deux présentés en apportant une analyse fine en annotant tout le source code de l'application. Il offre également une analyse des variables globales et TLS coté C/C++/Fortran/Rust.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Social Analyzer - Scannez vos profils sociaux (OSINT)

Qui n'a jamais eu envie de savoir si "KikouLolDu93" avait aussi un compte sur un site de rencontre ou un forum obscur de haxx0rs ? C'est humain, c'est de la curiosité... ou de l'OSINT (Open Source Intelligence) si vous voulez faire genre vous êtes un pro. Et pour ça, j'ai l'outil qu'il vous faut : Social Analyzer .

Ce script est un détective privé numérique qui va frapper à la porte de plusieurs centaines de sites (Facebook, X (ex-Twitter), Instagram, Tinder, et des trucs bien plus niches) pour vérifier la présence d'un pseudo.

Développé par qeeqbox, Social Analyzer ne se contente pas de tester une URL. Il analyse les pages, vérifie les métadonnées, et vous sort un score de confiance de 0 à 100. Notez qu'un score de 100 n'est pas une preuve d'identité absolue (on n'est pas à la police scientifique), mais une forte probabilité basée sur les signaux trouvés. À l'inverse, un score de 0 peut signifier que c'est un homonyme, ou simplement que le site a bloqué la requête. Ça évite en tout cas de stalker la mauvaise personne trop vite.

L'outil est codé en JavaScript et Python, et vous pouvez l'utiliser en ligne de commande ou via une interface web plutôt propre si le terminal vous donne de l'urticaire.

Comment on installe la bestiole ?

Vous avez plusieurs options, mais la plus simple si vous avez Python 3 d'installé, c'est via pip (vérifiez bien que c'est le paquet officiel) :

pip3 install social-analyzer

Et hop, c'est réglé. Ensuite pour lancer une recherche rapide, c'est aussi simple que :

social-analyzer --username "le_pseudo_a_chercher"

Si vous êtes plus team NodeJS, vous pouvez aussi cloner le dépôt GitHub et lancer ça à la main :

git clone https://github.com/qeeqbox/social-analyzer.git
cd social-analyzer
npm install
npm start

Ça lancera l'interface web sur votre machine (généralement sur le port 9005), et vous pourrez faire vos recherches tranquillement en cliquant sur des boutons.

Et ça marche vraiment ?

Franchement, oui. C'est même assez bluffant de voir tout ce qui ressort. Il peut même tenter d'extraire des infos supplémentaires comme la bio ou l'avatar si les sites ne sont pas trop protégés contre le scraping.

Par contre, petit disclaimer habituel : ce genre d'outil, c'est pour de l'investigation légitime. Genre vérifier vos propres traces numériques pour faire du nettoyage, ou pour des enquêtes de sécu. Ne commencez pas à l'utiliser pour harceler les gens, le web n'a pas besoin de ça.

D'ailleurs, si le sujet de l'OSINT vous branche, jetez un œil à mon article sur Blackbird qui fait un boulot similaire, ou apprenez à analyser un profil GitHub comme un chef.

Bref, Social Analyzer c'est puissant, c'est open source, et ça fait le café. À utiliser avec intelligence évidemment !

Merci à Lorenper !

  •  

LangExtract - La nouvelle pépite de Google pour extraire des données structurées avec l'IA

Il y a des combats comme cela auxquels pas grand monde ne pense et qui pourtant sont très importants. Je parle évidemment de la lutte contre le chaos du texte non structuré. Si vous avez déjà essayé d'extraire des données propres d'un tas de PDF (après OCR), de rapports ou de notes griffonnées, vous voyez de quoi je parle : c'est l'enfer ! (oui j'aime me faire du mal en tentant des regex impossibles).

Heureusement, Google a lâché début janvier 2026 une petite pépite en open source (même si c'est pas un produit "officiel") qui s'appelle LangExtract . C'est une bibliothèque Python qui utilise la puissance des LLM pour transformer vos documents textuels en données JSON bien rangées.

Exemple d'extraction sur le texte de Roméo et Juliette ( Source )

Ce qui fait que LangExtract sort du lot par rapport à d'autres outils comme Sparrow , c'est surtout son système de Source Grounding. En gros, chaque info extraite est directement liée à sa position exacte dans le texte source. Ça facilite énormément la vérification et la traçabilité puisque vous pouvez voir visuellement d'où vient la donnée grâce à un système de surlignage automatique.

Sous le capot, l'outil est optimisé pour les documents à rallonge (le fameux problème de l'aiguille dans une botte de foin). Il utilise des stratégies de découpage de texte et de passes multiples pour améliorer le rappel et s'assurer que le maximum d'infos soit capturé.

La visualisation interactive permet de valider les données en un clin d'œil ( Source )

Et cerise sur le gâteau, il permet de générer un fichier HTML interactif pour visualiser les milliers d'entités extraites dans leur contexte original. À la cool !

Côté installation, c'est hyper fastoche :

pip install langextract

Pour faire le job, vous avez le choix des armes : les modèles cloud de Google (Gemini 2.5 Flash/Pro), ceux d'OpenAI (via pip install langextract[openai]), ou carrément du local avec Ollama . Pas besoin de passer des heures à fine-tuner un modèle, il suffit de fournir quelques exemples structurés via le paramètre examples et hop, c'est parti mon kiki.

Voici à quoi ça ressemble sous le capot pour lancer une machine à extraire :

import langextract as lx

# 1. On définit les règles du jeu
prompt = "Extraire les noms de personnages et leurs émotions."

# 2. On donne un exemple (few-shot) pour guider le modèle
examples = [
 lx.data.ExampleData(
 text="ROMEO. But soft! What light...",
 extractions=[lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotion": "wonder"})]
 )
]

# 3. On lance l'extraction (nécessite une clé API ou Ollama)
results = lx.extract(
 text_or_documents="votre_texte_brut_ici",
 prompt_description=prompt,
 examples=examples,
 model_id="gemini-2.5-flash"
)

# 4. On sauvegarde et on génère la visualisation HTML
lx.io.save_annotated_documents(results, output_name="results.jsonl")
html_content = lx.visualize("results.jsonl")
with open("view.html", "w") as f:
 f.write(html_content)

Honnêtement, je ne sais pas si ça va remplacer les solutions industrielles de RPA , mais pour un dev qui veut structurer du texte sans se prendre la tête, c'est vraiment impressionnant. Que vous fassiez du Grist ou de l'analyse de données pure, cet outil mérite clairement que vous y jetiez un œil !

Source

  •  

Sortie de Tryton 7.8

Le 15 décembre 2025 est sortie avec un petit délai, la version 7.8 de Tryton, un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

La version 7.8 de Tryton est sortie mi‑décembre 2025 et s’inscrit dans la continuité des branches précédentes, avec une mise à jour axée sur la stabilité, les performances et une série de raffinements fonctionnels dans tous les domaines de gestion. Elle apporte de nombreuses corrections de bogues, améliore la réactivité du serveur et peaufine à la fois l’interface utilisateur, les modules métiers et les outils destinés aux administrateurs et développeurs.

Support PEPPOL

Suite à l'obligation pour 2026 en Belgique d’envoyer les factures entre sociétés belges au format électronique via le réseau PEPPOL, la version 7.8 inclut à temps les modules nécessaires dont un module de connexion au point d’accès gratuit Peppyrus.
Quand ces modules sont activés, Tryton envoie automatiquement à partir de 2026 sur le réseau PEPPOL les factures si le client a un numéro de TVA belge (ainsi que la société gérée). Il est aussi possible de forcer l’envoi pour certains clients.
Les modules sont conçus pour être étendu à d’autres points d’accès futures afin de diversifier l’offre.

Interface et usage quotidien

Cette version introduit un système de notifications plus moderne : un menu dédié regroupe les messages, un compteur signale les notifications non lues et des pop‑ups informent l’utilisateur des nouveaux événements sans quitter son écran. Les vues en liste sont plus agréables, avec des boutons d’action visibles en pied de page et des recherches simplifiées, par exemple pour trouver les documents sans entrepôt défini, ce qui rend la navigation au quotidien plus fluide.

Le chat intégré, apparu dans la version précédente comme fonctionnalité émergente, est désormais activée de base sur les documents clés (ventes, achats, factures…) pour centraliser les échanges directement dans le logiciel. Les utilisateurs peuvent s’abonner à un document via une icône de cloche et recevoir des notifications ciblées, renforçant le suivi collaboratif sans dépendre d’outils externes.

Conversation entre Jim et Dwight sur une vente

Modules métiers

Sur le plan fonctionnel, la version 7.8 enrichit l’écosystème de modules : gestion des formats de factures électroniques UBL et PEPPOL, gestion de contrats de location (avec facturation progressive), support des agents et de documents (facture commerciale) de douane, ainsi que définition plus fine des points d’expédition logistiques par entrepôt.

L’intégration e‑commerce, notamment avec Shopify.com, est nettement améliorée avec la prise en charge des remboursements, des taxes sur les frais de port, des produits de type kit, un choix plus intelligent du transporteur et la synchronisation de la langue du client et des liens d’administration entre boutiques en ligne et Tryton.

Le moteur d’approvisionnement a été ajusté pour mieux gérer les contraintes de délais : si aucun fournisseur ne peut livrer dans le délai idéal, le système choisit automatiquement celui qui offre le délai le plus court, limitant les ruptures tout en restant réaliste. De nouveaux rapports sur la quantité de stock et la rotation de stock permettent de suivre plus précisément les niveaux et mouvements, et de prendre de meilleures décisions sur les points de commande et les réassorts.

Les modules de comptabilités supportent maintenant les références de paiement sur les factures et les relevés de compte. Pour l’instance les formats « Creditor Reference » et « Communication structurée » belge sont supportées en standard.

Administration et développement

Côté serveur, Tryton 7.8 réduit la consommation mémoire en envoyant les réponses JSON comme flux et en ne chargeant plus que les modules activés, ce qui profite aux installations avec peu de modules activés (on a mesuré des réductions de la consommation mémoire entre 10% et 20%). Les administrateurs disposent d’un mode console: trytond-console capable d’exécuter maintenant des scripts depuis un fichier et d’un paramètre de rotation des logs basé sur la taille plutôt que sur l’âge, tandis que les développeurs bénéficient du nouveau système de notifications côté serveur, d’optimisations SQL avec l’usage de FILTER et EXISTS et de la possibilité de matérialiser les modèles basés sur une requête SQL (au lieu d’une table).

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •