eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak stwierdzić wielkość użytecznej wolnej pamięci? › Re: Jak stwierdzić wielkość użytecznej wolnej pamięci?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Jak stwierdzić wielkość użytecznej wolnej pamięci?
    Date: Fri, 3 Feb 2017 18:59:45 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 52
    Message-ID: <o72gei$g9k$1@node1.news.atman.pl>
    References: <o6vv41$dl7$1@node2.news.atman.pl>
    <6...@g...com>
    <o71va5$ub4$1@node1.news.atman.pl> <s...@j...net>
    NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1486144786 16692 89.70.119.159 (3 Feb 2017 17:59:46 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 3 Feb 2017 17:59:46 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
    Thunderbird/45.5.1
    In-Reply-To: <s...@j...net>
    Xref: news-archive.icm.edu.pl pl.comp.programming:210219
    [ ukryj nagłówki ]

    On 03.02.2017 15:15, Stachu 'Dozzie' K. wrote:
    > On 2017-02-03, Borneq <b...@a...hidden.pl> wrote:
    >> W dniu 03.02.2017 o 13:51, Maciej Sobczak pisze:
    >>> Jak chcesz mieć dostęp do fizycznego sprzętu, to pisz programy bezpośrednio na
    ten fizyczny sprzęt. W ramach kompromisu, być może funkcje mapujące pamięć mają
    jakieś opcje, które pozwalają kontrolować stopień "nieruszalności" jakiegoś bloku
    albo zakresu adresów - może się wtedy jednak okazać, że będziesz musiał tam samemu
    zorganizować sobie alokację.
    >>
    >> Chodzi o to: działam na wielkich plikach, lepiej bym używał tyle pamięci
    >> ile mogę aby było szybciej.
    >> Przykład: sortowanie zewnętrzne 3-plikowe lub większa ilość plików. Aby
    >> zmniejszyć zdecydowanie ilość przerzucań tym plikiem, przepuszczam przez
    >> stóg, jak największy, tyle ile mam pamięci, Wtedy plik składa się z
    >> dużych kawałków posortowanych.
    >
    > Robisz głupio. Do tego używa się mmap(2), a nie wykrywania ilości wolnej
    > pamięci. Wtedy przydzielaniem RAM-u martwi się system operacyjny.

    Nie bardzo rozumiem, co mu zmapowanie plików do pamięci pomoże.
    Jeśli odpali na tym qsorta najlepszy system operacyjny mu nie
    pomoże ;-)

    Pewnie chciałby posortować małe porcje, a potem mergesort
    na plikach. Ta drugą cześć bez problemu można robić jak
    sgerujesz, ale przy pierwszej, wypadałoby wiedzieć, ile się zmieści.
    Jeśli zmieści się dwa razy więcej, będzie jeden przebieg mniej.

    OK, co prawda mergesort puszczony naiwnie spowoduje pełne
    log_2 (N) odczytów z dysku, to mergesort zrobiony w kolejnośćipostorder

    sortuj( a,b ){
    mid = a+(b-a)/2;
    sortuj (a,mid);
    sortuj (mid,b);
    scal(a,mid,b)
    }

    przy dobrym automatycznym zarzadzaniu pamięcią (a nawety głupim
    'wywalaj wg kolejności użycia') da wynik przyzwoity.

    Ale nie idaealny, bo muszę mieć zmapowane w p[amięci wejscie i wyjscie,
    trace wiec jeden przebieg.


    Z drugiej strony to problem istotny tylko przy słąbych algorytmach.
    Jeśli skorzystać z 256 plików, to 65 terabajtów posortuję za pomocą
    gigabajta w trzech seriach odczyt/zapis ;-)

    pzdr
    bartekltg





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: