Отстраняване на неизправности при изтичане на памет с MALLOCDEBUG на AIX 5

Полезен инструмент за скучна работа

Когато изграждате приложения, динамичното разпределение на паметта е благодат - помага да се разпредели необходимата памет, докато програмата работи, вместо да я разпределя предварително при стартиране. Много е важно обаче ефективно да управлявате тази памет. В големите сложни приложения изтичането на памет е често срещано. Изтичане на памет се случва, когато предварително разпределена част от паметта вече не е необходима или е станала недостъпна, но не е освободена, и води до процес, свършващ от цялата налична памет. Въпреки че правилните техники за програмиране ще намалят броя на течовете, ако някои блокове памет се използват за много функции, това създава риск от изтичане на памет. Това е особено вярно, когато има грешки в пътищата.

Тази статия разглежда методи за проследяване на изтичане на памет и предимствата на помощната програма MALLOCDEBUG, включена в AIX®.

Каква е трудността при разрешаването на течове от паметта

Можете да изчистите блок памет по различно време по време на изпълнение на приложението в зависимост от вашите текущи изисквания. Приложението може да бъде проектирано така, че да знае кога блок памет е готов за почистване и рано или късно да предприеме това действие. В зависимост от потока на контрол, почистването на паметта може да се осъществи на различни места в кода. Наложително е всички тези потоци на контрол да обхващат не само най-често използваните парчета код.