Mirki jak zbadać wagę klasy wraz ze wszystkim? W sensie ile waży cały obiekt wraz ze wszystkim co ma w środku?
Chcę się dowiedzieć ile waży QDateTime, ale sizeof w mojej skromnej opinii pokazuje zwyczajne bzdury, bo rzekomo ma 8 B. Szkoda tylko, że QDate też ma 8 a QTime ma 4, a QDateTime składa się z obu. Jak sprawdzić ile waży QDateTime realnie?
@Khaine: to że A ma 4, B ma 8 a AB ma 8 to nie znaczy że źle pokazuje...
PS. Zauważ, że sizeof(instancja_wektora) nie zwróci pełnej wagi wraz z całym buforem. Także to wszystko zależy od tego jak napisana jest klasa QDateTime i jak chcesz się tego dowiedzieć to najłatwiej i najszybciej będzie przejechać się po nagłówkach Qt'a i samemu sprawdzić to w niej siedzi.
@AferaZaAfera: Sprawdziłem, on ma pointer na klasę istniejącą tylko po to, aby trzymać składowe prywatne. Dlatego ma 8 B. Natomiast testy z managerem windowsa pokazują, że realnie jeden obiekt może zajmować 120 B nawet patrząc po zużyciu pamięci przez testowy program.
@Khaine: w sumie to nie rozumiem o co pytasz teraz, ale sprawdź czy ta klasa której wskaźnik jest w QDateTime nie jest dziedziczona w innej, wtedy możliwe że nie masz wskaźnika na bazową tylko na jakaś inną i ona po prostu więcej zajmuje...
Wszystko jest w źródle, odpal sobie czysty program z debuggerem na samym początku maina i tylko zadeklaruj jeden obiekt QDateTime i prześledź co się dzieje to się dowiesz
@Khaine: Nie ma uniwersalnej metody, ponieważ każda klasa może mieć w środku wskaźniki na inne obiekty (a sam wskaźnik waży tylko 4 lub 8 bajtów), a skąd sizeof() (lub cokolwiek byś chciał tutaj użyć) ma niby wiedzieć, że w przypadku danej klasy chcesz brać pod uwagę obiekty wskazywane przez wskaźnik, a kiedy nie? Bo nie zawsze możesz chcieć. Niektóre obiekty spod wskaźników mogą być współdzielone i już nie można ich liczyć.
@Khaine: Metoda ze sleepem zakłada użycie zewnętrznego programu do pomiaru użycia pamięci. Nie wiem na ile zewnętrzna aplikacja ma dostęp do dokładnego zużycia przez daną aplikację (a o ile do przewidzianego zużycia tak jak to widzi system).
Myślę, że warto by napisać sobie funkcję jak tutaj i wywołać ją przed i po stworzeniu obiektu, obliczyć różnicę. Tylko tak jak wcześniej pisałem - nie wiadomo czy taka funkcja też nie będzie czasem
Mirki jak zbadać wagę klasy wraz ze wszystkim? W sensie ile waży cały obiekt wraz ze wszystkim co ma w środku?
Chcę się dowiedzieć ile waży QDateTime, ale sizeof w mojej skromnej opinii pokazuje zwyczajne bzdury, bo rzekomo ma 8 B. Szkoda tylko, że QDate też ma 8 a QTime ma 4, a QDateTime składa się z obu. Jak sprawdzić ile waży QDateTime realnie?
http://www.cprogramming.com/tutorial/size_of_class_object.html
PS. Zauważ, że sizeof(instancja_wektora) nie zwróci pełnej wagi wraz z całym buforem. Także to wszystko zależy od tego jak napisana jest klasa QDateTime i jak chcesz się tego dowiedzieć to najłatwiej i najszybciej będzie przejechać się po nagłówkach Qt'a i samemu sprawdzić to w niej siedzi.
Wszystko jest w źródle, odpal sobie czysty program z debuggerem na samym początku maina i tylko zadeklaruj jeden obiekt QDateTime i prześledź co się dzieje to się dowiesz
Myślę, że warto by napisać sobie funkcję jak tutaj i wywołać ją przed i po stworzeniu obiektu, obliczyć różnicę. Tylko tak jak wcześniej pisałem - nie wiadomo czy taka funkcja też nie będzie czasem