Ich wollte Speicherleck in meiner Anwendung simulieren. Ich schreibe folgenden Code und versuchte in Perfmon zu sehen.Warum verursacht dieser Code keinen Speicherverlust?
int main()
{
int *i;
while(1)
{
i = (int *) malloc(1000);
//just to avoid lazy allocation
*i = 100;
if(i == NULL)
{
printf("Memory Not Allocated\n");
}
Sleep(1000);
}
}
Wenn ich sehe, gebrauchten Speicher im Task-Manager, ist es schwanken zwischen 52K und 136K, aber nicht darüber hinaus gehen. Bedeutet, irgendwas zeigt es 52K und manchmal 136K, ich verstehe nicht, wie dieser Code einmal zu 136K geht, zu 52K zurückkommt und nicht darüber hinausgeht.
Ich versuchte perfmon, aber nicht in der Lage, genau zu verwenden, was in perfmon, Snapshot des Zählers, um zu sehen,
Bitte vorschlagen, wie Speicherverlust zu simulieren und wie es zu erkennen.
Setzen Sie ein Häkchen, wenn Sie Speicher zuweisen, um zu sehen, ob er tatsächlich zugewiesen wird. – brokenfoot
@brokenfoot Mein Code wurde aktualisiert. –
Sie reservieren nur 100 Bytes pro 10 Sekunden. Es dauert mehr als 6 Minuten, um eine vollständige 4k-Seite zuzuordnen. Verwenden Sie größere Zahlen. – aragaer