eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCiekawy problem iteracyjnego zwalniania głębokiego drzewaRe: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
  • Data: 2017-08-16 16:42:45
    Temat: Re: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
    Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Wednesday, August 16, 2017 at 4:22:54 PM UTC+2, Borneq wrote:
    > W dniu 16.08.2017 o 16:11, bartekltg pisze:
    > >> czy też vector tylko podstawowe elementy ma na stosie a tablicę na stogu?
    > >
    > > Oczywiście.
    >
    > To wydaje mi się naturalne, zresztą raczej nie stosuje się (chyba że
    > przez alloca() dynamicznego przydzielania na stosie)
    >
    > >
    > >> Jednak u mnie zdarzało się przepełnianie pamięci dużymi wektorami.
    > >
    > > Mi też. Jak alokowałem 20GB majac 16 fizycznie i 13 dostępnych:)
    >
    > Zapomniałem dodać że to przepełnienie dotyczyło stosu już przy 1 MB ale
    > chyba problemy były czymś innym spowodowane, bo aby się upewnić testuję:
    > void testBigVector()
    > {
    > vector<int> vec;
    > for (int i = 0; i < 10000000; i++)
    > vec.push_back(i);
    > }
    > i przechodzi

    Struktury w tym sensie można podzielić na dwa, albo nawet na trzy rodzaje.

    Po pierwsze taka struktura jak std::vector, lub QVector. Jak Bartek już
    napisał, na stosie kładą małą ilość danych. Wśród danych położonych na
    stosie jest wskaźnik na "dane właściwe", czyli te przechowywane w
    wektorze. Potem na tym wskaźniku są robione operacje malloc, realloc i free.

    Po drugie, są struktury które w całości leżą na stosie, a szablon/klasa
    tylko je obudowuje. Nie jestem pewny, czy taką strukturą jest std::array.

    Po trzecie, są stuktury które, ja wyżej, w całości leżą na stosie, ale
    gdy rozmiar tablicy zostanie przepełniony, to automatycznie zmieniają
    swoje zachowanie na takie samo jak std::vector lub qvector. Przykładem
    takiej struktury jest QVarLenthArray.

    Więc o te pierwsze nie musisz się bać, że przepłnią stos. A o drugą i
    trzecią nie (niekoniecznie) musisz się bać, że malloc, realloc i free
    zajmą za dużo czasu.

    Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: