RSS Планета Python

Giampaolo Rodola: C heap introspection in psutil

Утечки памяти в Python могут быть трудными для диагностики, особенно когда они происходят в модулях расширения на языке C. Традиционные метрики памяти, такие как RSS и VMS, часто не могут обнаружить эти утечки, поскольку аллокатор памяти Python находится выше родного кучи платформы. Чтобы решить эту проблему, psutil 7.2.0 вводит два новых API для интроспекции кучи на языке C, которые предоставляют окно в аллокатор платформы. Эти API, heap_info и heap_trim, позволяют разработчикам отслеживать использование памяти и обнаруживать родные утечки в расширениях на языке C. Функция heap_info предоставляет метрики, такие как heap_used и mmap_used, а функция heap_trim предоставляет способ запроса освобождения неиспользуемой памяти аллокатором. Используя эти API, разработчики могут обнаруживать утечки памяти в расширениях на языке C, которые могут быть невидимы другими средствами. Также был разработан новый инструмент под названием psleak, который использует эти API для обнаружения утечек памяти в расширениях на языке C путем повторного выполнения целевой функции и отслеживания изменений в использовании памяти. Инструмент psleak теперь является частью набора тестов psutil и может быть использован для тестирования расширений на языке C на наличие утечек памяти. В целом, введение этих новых API и инструмента psleak заполняет давний пробел в наблюдаемости и предоставляет простой метод для тестирования расширений на языке C на наличие утечек.
favicon
gmpy.dev
Giampaolo Rodola: C heap introspection in psutil