Hvordan bruke DTrace som en Memory Profiler

Ved utvikling av programmer, må du sørge for at den resulterende programmet er like feilfritt og feilfritt som mulig. Et av hovedproblemene med C ++ programmeringsspråket er minnelekkasjer. Minnelekkasjer oppstår når et program som oppretter en forekomst, av noe slag, og deretter fjerner ikke det når det er ferdig blir brukt. Feilsøking C ++ programmer for dette med innebygde verktøy er ofte vanskelig å tolke. Derfor kan du bruke DTrace å profilere minne og finne hvor minnelekkasje oppstår. Disse prosessene er utviklet for Unix og Linux på kommandolinjen. Dette krever en avansert kunnskap om C ++ testing for å utføre.

Bruksanvisning

1 Lag et skript i din foretrukne teksteditor, kalt "memorytest.d" eller lignende.

2 Kopier og lim følgende linjer:

Pragma D alternativ stille

/


PARAMETRE FOR Å TESTE
/

/ Kommer tilbake fra param1 () /
PARAM1
{
printf ( "% s:% x \ n", probefunc, arg1);
}

/ Ringe til Param2 () /
PARAM2
{
printf ( "% s:% x \ n", probefunc, arg0);
}

3 Erstatt PARAMETRE FOR Å TESTE "med funksjonene fra din C ++ script og deres kilde navn som du ønsker å teste i søknaden. Erstatt "PARAM1" med retur funksjonen for paramter og det samme med PARAM2 for andre parameter. Gjenta dette med så mange parametere som du ønsker. Avslutt og lagre skriptet.

4 Skriv "DTrace -s ./memorytest.d 'pgrep SØKNAD' | c ++ filt" (uten anførselstegn). Erstatt "SØKNAD" med C ++ program. Trykk enter."

5 Type, etter noen minutter, "pkill DTrace" og trykk "Enter". Dette viser da de tilfellene der det er minnelekkasjer i programmet og dermed profiler minnet som brukes, som ikke har blitt fjernet.