eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCiekawy problem iteracyjnego zwalniania głębokiego drzewaRe: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
  • X-Received: by 10.31.142.14 with SMTP id q14mr14066vkd.19.1502894565310; Wed, 16 Aug
    2017 07:42:45 -0700 (PDT)
    X-Received: by 10.31.142.14 with SMTP id q14mr14066vkd.19.1502894565310; Wed, 16 Aug
    2017 07:42:45 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
    iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganew
    s.com!nntp.giganews.com!m34no414157iti.0!news-out.google.com!i9ni1737qte.0!nntp
    .google.com!s6no456764qtc.1!postnews.google.com!glegroupsg2000goo.googlegroups.
    com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 16 Aug 2017 07:42:45 -0700 (PDT)
    In-Reply-To: <on1kft$bco$1@node2.news.atman.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=159.205.37.107;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 159.205.37.107
    References: <oms9l6$db4$1@node2.news.atman.pl>
    <f...@g...com>
    <on1jfg$aeg$1@node2.news.atman.pl>
    <7...@g...com>
    <on1kft$bco$1@node2.news.atman.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <a...@g...com>
    Subject: Re: Ciekawy problem iteracyjnego zwalniania głębokiego drzewa
    From: "M.M." <m...@g...com>
    Injection-Date: Wed, 16 Aug 2017 14:42:45 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 60
    Xref: news-archive.icm.edu.pl pl.comp.programming:211121
    [ ukryj 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: