Jestem nowy dla mac i instrumentów, używam go do przetestowania mojej aplikacji Qt, znalazłem wiele wyciekł obiektów, prawie wszystkie z nich pochodzą z Qt lib.I sprawdź mój kody są bardzo ostrożne, ale nie mogą znaleźć problemu. Aby uniknąć problemu z wyciekiem pamięci, ściśle przestrzegam zasad RAII, zawsze pozwól klasie obsługiwać zasoby, upewnij się, że każdy widget ma rodzica, ten widget bez rodzica (z założeniem) będzie chroniony przez inteligentny wskaźnik lub Qt :: WA_DeleteOnClose.Instrumenty mówią mi, że mam wyciek pamięci
Aby rozwiązać ostrzeżenie przeciek pamięci, piszę bardzo prosty Qt aplikacji i używać go jako test, instrumenty zawsze pokazują, że mam kilka wycieków pamięci (jak wykresie) nawet najbardziej najprostszy Qt aplikacji stworzyłem.
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel w;
w.resize(320, 240);
w.show();
return a.exec();
}
Wykres instrumentów
I zmieniać Kody trochę i zobaczyć pamięć przeciek pokaz instrumenty byłyby nadal rosły czy nie.
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
for(size_t i = 0; i != 100; ++i){
QLabel w;
w.resize(320, 240);
w.show();
}
QLabel w;
w.resize(320, 240);
w.show();
return a.exec();
}
wyciek pamięci robić wzrost, zdecydowanie nadzieję, że to pomyłka instrumentu, jeszcze muszę wracać do Qt4 (i nie wiem, to będzie mają ten sam problem lub nie). Nie sądzę, by ta prosta aplikacja mogła przejść kontrolę jakości w sklepie z aplikacjami mac (OSX). Co się dzieje? Jak wyjaśnić to zjawisko? Jeśli nie ma wycieku pamięci, powinienem nie zobaczyć żadnej wiadomości o obiekcie wycieku, czy mam rację? Błąd Qt5.0.2?
Jeśli program pozostanie włączony przez bardzo długi czas, czy zestaw pracy pamięci stale rośnie? Nie spieszyłbym się z założeniem, że coś jest nie tak z detektorem wycieków, ale nie był to pierwszy raz, kiedy widziałem, że ktoś daje fałszywe pozytywne wyniki. –
Edytuję odpowiedź, nadaję jej nowy wygląd, a wyciek pamięci pokazywany przez instrumenty wzrasta, co za zła wiadomość – StereoMatching
Co miałem na myśli przez "czy zestaw pamięci pracuje stale?" było "Jeśli obserwujesz okno Menedżera zadań systemu Windows (lub odpowiednika Maca), czy kolumna zestawu roboczego stale się zwiększa?" –