↩ Accueil

Vue normale

Profileur mémoire MALT 1.6.0 et support de Python

30 janvier 2026 à 14:55

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

Open-Source Nova Driver In Linux 7.0 Continues Preparing For NVIDIA Turing GPU Support

30 janvier 2026 à 12:15
This week the Rust DRM changes intended for the Linux 7.0 merge window were sent out by Danilo Krummrich. The Apple Silicon Asahi Linux "AGX" DRM kernel driver still isn't positioned for upstreaming to the mainline kernel so that leaves most of the Rust DRM upstream work currently around the NVIDIA Nova driver as well as the Arm Mali Tyr drivers...

Tails 7.4.1

30 janvier 2026 à 11:22
The Amnesic Incognito Live System (Tails) is a Debian-based live DVD/USB with the goal of providing complete Internet anonymity for the user. The product ships with several Internet applications, including web browser, IRC client, mail client and instant messenger, all pre-configured with security in mind and with all traffic anonymised. To achieve this, Incognito uses the Tor network to make Internet traffic very hard to trace.

Intel Xe Linux Driver Updated To Disable GuC Power DCC For Panther Lake

30 janvier 2026 à 11:53
Queued up in DRM-Next for the Intel open-source graphics driver ahead of the Linux 7.0 kernel cycle is expanding GPU temperature sensor reporting, multi-device SVM prep, multi-queue support for Crescent Island, Nova Lake display support, and other feature work. With the Linux 6.19 stable release fast approaching, DRM-Next is now focusing in on reading early fixes with concluding feature activity for this next merge window...

Whonix 18.1.3.4

30 janvier 2026 à 07:02
Whonix is an operating system focused on anonymity, privacy and security. It is based on the Tor anonymity network, Debian GNU/Linux and security by isolation. Whonix consists of two parts: One solely runs Tor and acts as a gateway, which is called Whonix-Gateway. The other, which is called Whonix-Workstation, is on a completely isolated network. Only connections through Tor are possible. With Whonix, you can use applications and run servers anonymously over the Internet. DNS leaks are impossible, and even malware with root privileges cannot find out the user's real IP.

Kicksecure 18.1.3.4

30 janvier 2026 à 03:16
Kicksecure is a security-hardened Linux distribution based on Debian's "Stable" branch, with Xfce as the default desktop user interface. It is a hardened operating system designed to be resistant to viruses, malware and attacks, and extensively reconfigured in accordance with an advanced multi-layer defense model, thereby providing in-depth security. Kicksecure provides protection from many types of malware in its default configuration with no customization required.

DDR5-4800 vs. DDR5-6000 Performance With The AMD Ryzen 7 9850X3D In 300+ Benchmarks

29 janvier 2026 à 18:50
With the incredible market demand around DDR5 memory and significantly elevated pricing on the more premium DDR5 memory modules, as part of the AMD Ryzen 7 9850X3D launch there's been some communication that thanks to 2nd Gen AMD 3D V-Cache, using lower memory speeds like DDR5-4800 can be suitable without much of an impact to the gaming performance. But what about for Linux gaming? And other workloads with the Ryzen 7 9850X3D? Complementing yesterday's Linux review of the Ryzen 7 9850X3D are benchmarks of DDR5-4800 vs. DDR5-6000 performance with Ubuntu Linux and this new 3D V-Cache 8-core / 16-thread desktop processor.

IO_uring Zero-Copy Large Receive Buffer Support To Provide A Nice Performance Win

29 janvier 2026 à 17:21
Slated for introduction in the next kernel cycle (Linux 6.20~7.0) is introducing large receive buffer support for IO_uring's zero-copy receive code path. This large receive buffer support can be very beneficial for those with higher-end networking hardware capable of handling the larger buffers for some significant performance and efficiency wins...

Free Up Disk Space by Removing Old Snap Versions

29 janvier 2026 à 16:11

Ubuntu and snap package logos on tape across a cardboard box texture.Running out of disk space on Ubuntu? Before you start uninstalling applications or clearing caches, you might want to check your snap revisions. I’ve been getting low disk space warnings on a 40GB Ubuntu partition. The usual tips to free space on Ubuntu weren’t enough, so I opened Disk Usage Analyser – or run sudo du -sh /var/lib/snapd – and found nearly 8GB was eaten up by old snap versions. Not active versions of Snaps I have installed; backups of every snap I have installed. There, idle, in the snapd folder consuming several gigabytes “just in case” I need to […]

You're reading Free Up Disk Space by Removing Old Snap Versions, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.

Tribblix 0m38

29 janvier 2026 à 14:53
Tribblix is a general-purpose operating system derived from OpenSolaris, OpenIndiana and illumos. The base kernel and commands come from illumos, with everything else rebuilt from scratch. It is a traditional system where software is distributed as SVR4 packages and lightweight window managers are preferred over heavy desktop environments. Xfce is the primary desktop option, with MATE, Enlightenment and various window managers also available for installation. While Tribblix inherits many of the key illumos technologies, such as ZFS, zones, DTrace and SMF, it uses its own build and packaging system.

Bluestar 6.18.7

29 janvier 2026 à 13:39
Bluestar Linux is a GNU/Linux distribution that is based on Arch Linux. The Bluestar distribution features up to date packages, a full range of desktop and multimedia software in the default installation and a live desktop DVD.
❌