Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #29374 > unrolled thread

Jak stwierdzić wielkość użytecznej wolnej pamięci?

Started byBorneq <borneq@antyspam.hidden.pl>
First post2017-02-02 19:51 +0100
Last post2017-02-22 15:19 +0000
Articles 20 on this page of 21 — 8 participants

Back to article view | Back to pl.comp.programming


Contents

  Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-02 19:51 +0100
    Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Maciej Sobczak <see.my.homepage@gmail.com> - 2017-02-03 04:51 -0800
      Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-03 14:07 +0100
        Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> - 2017-02-03 14:15 +0000
          Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-03 15:18 +0100
            Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> - 2017-02-03 16:30 +0000
          Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? bartekltg <bartekltg@gmail.com> - 2017-02-03 18:59 +0100
            Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-03 19:35 +0100
              Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-03 19:41 +0100
              Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? bartekltg <bartekltg@gmail.com> - 2017-02-03 20:03 +0100
                Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-03 20:08 +0100
                  Re: Jak stwierdzi? wielko?? u?ytecznej wolnej pami?ci? antispam@math.uni.wroc.pl - 2017-02-04 02:16 +0000
                Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-07 23:42 +0100
                  Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Borneq <borneq@antyspam.hidden.pl> - 2017-02-07 23:52 +0100
        Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? "M.M." <mmarszik@gmail.com> - 2017-02-04 05:59 -0800
    Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? Bartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl> - 2017-02-21 21:40 +0000
      Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? gof@somewhere.invalid (Adam Wysocki) - 2017-02-22 14:12 +0000
        Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> - 2017-02-22 14:30 +0000
        Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? bartekltg <bartekltg@gmail.com> - 2017-02-22 15:32 +0100
          Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? gof@somewhere.invalid (Adam Wysocki) - 2017-02-22 14:53 +0000
          Re: Jak stwierdzić wielkość użytecznej wolnej pamięci? "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> - 2017-02-22 15:19 +0000

Page 1 of 2  [1] 2  Next page →


#29374 — Jak stwierdzić wielkość użytecznej wolnej pamięci?

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-02 19:51 +0100
SubjectJak stwierdzić wielkość użytecznej wolnej pamięci?
Message-ID<o6vv41$dl7$1@node2.news.atman.pl>
Mam program operujący na dużych plikach. Im więcej wczyta do pamięci na 
raz tym szybciej zadziała. Ale nie może więcej czytać bo albo pamięć się 
skończy albo zacznie się używania swapa.
Odczyt ilości wolnej pamięci testowałem pod Linuksem i dawał śmiesznie 
małe wartości, bo pamięć była wykorzystana niemal w całości np. przez 
bufory plikowe. Niektóre rzeczy można wyrzucić, nawet niektóre programy. 
Choć nie wiem, gdy jest otwarty VirtualBox.
Można też odczytać wielkość pamięci fizycznej i wykorzystać np. 70%? 
(choć może być otwarty wirtualny system zajmujący 50% pamięci)
a może lepiej niech to użytkownik decyduje w Ini. Choć najlepiej było by 
to automatyczne, gdy zaczyna korzystać ze swapa, zmniejszyć.

[toc] | [next] | [standalone]


#29384

FromMaciej Sobczak <see.my.homepage@gmail.com>
Date2017-02-03 04:51 -0800
Message-ID<6c1ebc56-b965-455c-b1f0-f818c821fff1@googlegroups.com>
In reply to#29374
A co to jest "wielkość użytecznej wolnej pamięci" w programie, który chodzi na... maszynie wirtualnej typu VirtualBox?

Pytasz o coś, co ma zupełnie wirtualny charakter. W dodatku na platformach, których projektanci od dawna robią co tylko mogą, żeby Cię od tych rzeczy jak najdalej odsunąć. Z biegiem czasu te pojęcia przestają nawet mieć fizyczny sens, więc pytanie jest coraz bardziej bezprzedmiotowe.

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ę.

-- 
Maciej Sobczak * http://www.inspirel.com

[toc] | [prev] | [next] | [standalone]


#29385

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-03 14:07 +0100
Message-ID<o71va5$ub4$1@node1.news.atman.pl>
In reply to#29384
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.

[toc] | [prev] | [next] | [standalone]


#29386

From"Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Date2017-02-03 14:15 +0000
Message-ID<slrno9943h.mho.dozzie@jarowit.net>
In reply to#29385
On 2017-02-03, Borneq <borneq@antyspam.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.

-- 
Secunia non olet.
Stanislaw Klekot

[toc] | [prev] | [next] | [standalone]


#29387

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-03 15:18 +0100
Message-ID<o723ep$2hc$1@node1.news.atman.pl>
In reply to#29386
W dniu 03.02.2017 o 15:15, Stachu 'Dozzie' K. pisze:
> 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.

Czyli mapuję cały plik i sortuję go "w pamięci"? Ale były algorytmy 
zewnętrzne minimalizujące ilość odwołań do dysku. Chyba nie warto 
zamapować całego pliku a potem robić quickSorta przemieszczającego 
elementy z jednego końca pliku na inny.

[toc] | [prev] | [next] | [standalone]


#29390

From"Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Date2017-02-03 16:30 +0000
Message-ID<slrno99c09.mho.dozzie@jarowit.net>
In reply to#29387
On 2017-02-03, Borneq <borneq@antyspam.hidden.pl> wrote:
> W dniu 03.02.2017 o 15:15, Stachu 'Dozzie' K. pisze:
>> 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.
>
> Czyli mapuję cały plik i sortuję go "w pamięci"? Ale były algorytmy 
> zewnętrzne minimalizujące ilość odwołań do dysku. Chyba nie warto 
> zamapować całego pliku a potem robić quickSorta przemieszczającego 
> elementy z jednego końca pliku na inny.

A te algorytmy to wymagają deskryptora pliku, inaczej w magiczny sposób
nie działają?

-- 
Secunia non olet.
Stanislaw Klekot

[toc] | [prev] | [next] | [standalone]


#29391

Frombartekltg <bartekltg@gmail.com>
Date2017-02-03 18:59 +0100
Message-ID<o72gei$g9k$1@node1.news.atman.pl>
In reply to#29386
On 03.02.2017 15:15, Stachu 'Dozzie' K. wrote:
> On 2017-02-03, Borneq <borneq@antyspam.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




[toc] | [prev] | [next] | [standalone]


#29392

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-03 19:35 +0100
Message-ID<o72ihq$ib5$1@node1.news.atman.pl>
In reply to#29391
W dniu 03.02.2017 o 18:59, bartekltg pisze:
> 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 ;-)

A tego nie znałem. Stosowałem
http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_1.pdf
http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_2.pdf
http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_3.pdf

pliki o rozmiarach wynikających z ciągu Fibonacciego któregoś rzędu. 
Przy czym te pliki zachowywały się jak kolejka, nie można było usunąć z 
początku (przydałyby się dziury plikowe) to wzrastały do co najmiej 
wielkości sortowanego pliku. Więc metoda 3 plikowa wymaga 3 krotnie 
więcej dysku niż ten plik, 5 - plikowa mniej przebiegów ale więcej dysku.
Co zrobić aby te 256 plików nie zajmowało 256*65 TB = 17 Petabajtów dysku?

[toc] | [prev] | [next] | [standalone]


#29393

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-03 19:41 +0100
Message-ID<o72isq$ib5$2@node1.news.atman.pl>
In reply to#29392
W dniu 03.02.2017 o 19:35, Borneq pisze:
> więcej dysku niż ten plik, 5 - plikowa mniej przebiegów ale więcej dysku.
> Co zrobić aby te 256 plików nie zajmowało 256*65 TB = 17 Petabajtów dysku?

Co prawda, teoretycznie to 65 TB rozłoży się na 256 plików po 256 GB ale 
będą dopisywać na koniec a wskaźnik początku będzie się przesuwał,
Trochę przesadziłem, tak jest dla 3 czy 5 plików, gdzie jest więcej 
przebiegów, może te 256 plików nie zdąży być tak wielkie jak wynikowy.
Choć jeden z tych 256 osiągnie pełną wielkość, inne będą mniejsze 
jedynie o czynnik fibonacciego któregoś rzędu

[toc] | [prev] | [next] | [standalone]


#29394

Frombartekltg <bartekltg@gmail.com>
Date2017-02-03 20:03 +0100
Message-ID<o72k6t$k3k$1@node1.news.atman.pl>
In reply to#29392
On 03.02.2017 19:35, Borneq wrote:
> W dniu 03.02.2017 o 18:59, bartekltg pisze:
>> 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 ;-)
>
> A tego nie znałem. Stosowałem
> http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_1.pdf
> http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_2.pdf
> http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/ALG/Algusm5_3.pdf

Mistrzostwo dydaktyki to nie jest.

> pliki o rozmiarach wynikających z ciągu Fibonacciego któregoś rzędu.
> Przy czym te pliki zachowywały się jak kolejka, nie można było usunąć z
> początku (przydałyby się dziury plikowe) to wzrastały do co najmiej
> wielkości sortowanego pliku.

A to w jakimkolwiek pliku (systemie operacyjnym) można przesunąć
poczatek pliku?


> Więc metoda 3 plikowa wymaga 3 krotnie
> więcej dysku niż ten plik, 5 - plikowa mniej przebiegów ale więcej dysku.
> Co zrobić aby te 256 plików nie zajmowało 256*65 TB = 17 Petabajtów dysku?

Masz dwa razy więcej dysku.

Wczytujesz umówiony gigabajt do pamięci, sortujesz, zapisujesz do nowego 
pliku.
Masz (rozmiar / 1GB) plików po 1GB.
Kasujesz oryginały.
Robisz merge na 256 plikach na raz.
Masz więc w kolejnych fazach
(rozmiar / 1GB)/265
(rozmiar / 1GB)/256^2
...
pliów.


Jak robisz merge na raz więcej niż jednemu plikowi?

Trzymasz parę(wartość, indeks)
indeks to numer pliku z którego pochodzi wartość.
Na start wypełniasz je jednym elementem z każdego pliku.

Zabierasz parę z wierzchołka kopca, wartosć do pliku wyjściowego,
z pliku indeks wsadzasz do kopca jeden element.



Oczywiście, nie czytasz pliów po elementcuie, tylko je sobie buforujesz
w pamięci. Bufory nie muszą być wcale duże, byle się wygodnie czytało
z dysku.

256 plików wynika raczej z ograniczenia pamięci (przy naszych
załozeniach mamy po 4MB na plik) niż z tego, że kopiec by słabo
działał dla większej liczby.


Tu widzę jakieś wariacje na temat:
http://www.csbio.unc.edu/mcmillan/Media/Comp521F10Lecture17.pdf
Ładnie, kolorowo, bez traści kodu z którego i tak nie skorzystamy ;-)


pzdr
bartekltg

PS: z drugiego postu nic nie rozumiem.
Chyba jednak mówimy o czym innym ;-)









[toc] | [prev] | [next] | [standalone]


#29395

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-03 20:08 +0100
Message-ID<o72kep$kf4$1@node1.news.atman.pl>
In reply to#29394
W dniu 03.02.2017 o 20:03, bartekltg pisze:
> A to w jakimkolwiek pliku (systemie operacyjnym) można przesunąć
> poczatek pliku?

W nowszych systemach plików jest coś takiego jak dziury w NTFS, powinny 
być także w Ext3. Niby plik jest duży ale jakaś jego część nie jest 
przypisana do żadnego bloku dyskowego i odczytuje się zera, niezależnie 
co zapisać.

[toc] | [prev] | [next] | [standalone]


#29396 — Re: Jak stwierdzi? wielko?? u?ytecznej wolnej pami?ci?

Fromantispam@math.uni.wroc.pl
Date2017-02-04 02:16 +0000
SubjectRe: Jak stwierdzi? wielko?? u?ytecznej wolnej pami?ci?
Message-ID<o73dh1$l46$1@z-news.wcss.wroc.pl>
In reply to#29395
Borneq <borneq@antyspam.hidden.pl> wrote:
> W dniu 03.02.2017 o 20:03, bartekltg pisze:
> > A to w jakimkolwiek pliku (systemie operacyjnym) mo?na przesun??
> > poczatek pliku?
> 
> W nowszych systemach plik?w jest co? takiego jak dziury w NTFS, powinny 
> by? tak?e w Ext3. Niby plik jest du?y ale jaka? jego cz??? nie jest 
> przypisana do ?adnego bloku dyskowego i odczytuje si? zera, niezale?nie 
> co zapisa?.

Dziury sa od dawna.  Ale robi sie je przeskakujac dana pozycje,
czyli dziura jest tam gdzie nie pisales, jak zapisales to nie
ma dziury.  Nie wiem czy da sie zrobic dziure "wymazujac" to
co bylo zapisane.

Sortowania bez uzycia duzego dodatkowego obszaru mozna zrobic
bez dziur.  Po prostu w posrednich etapach logiczny plik dzielisz
na bloki i kazdy blok zapisujesz w oddzielnym pliku systemu
plikow.  W pierszym przebiegu czytasz bloki od konca i
zwalniasz miejsce skracajac plik.  W nastepnych zuzyte bloki
mozesz kasowac.  Narzut to oczywiscie dodatkowe informacje
w systemie plikow zwiazane z tym ze masz wiele "malych"
plikow zamiast jedznego duzego -- rzedu kilkuset bajtow
na plik czyli przy blokach rzedu 4MB mala czesc danych.
Do tego wiekszosc dodatkowego zuzycia jest w obszarze
inodes ktory jest zaalokowany niezaleznie czy go uzyjesz
czy nie.  Przy laczeniu z 256 zrodel mozesz miec 256 prawie
pustych blokow czyli rzedu 1GB stalego narzutu.  Biorac
pod uwage ze Uniksowe filesystemy rezerwuja 5-10% dysku
dla poprawy wydajnosci te dodatkowe obszary ktore
potrzebujesz sa bardzo male.  W praktyce to pewnie
by sie opuznialo kasowanie by ograniczyc prawdopodobne
straty w przypadku padu systemu (taki sort to zajmie
sporo czasu wiec szansa na pad nie tak mala).

-- 
                              Waldek Hebisch

[toc] | [prev] | [next] | [standalone]


#29405

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-07 23:42 +0100
Message-ID<o7dih4$s4u$1@node1.news.atman.pl>
In reply to#29394
W dniu 03.02.2017 o 20:03, bartekltg pisze:
> http://www.csbio.unc.edu/mcmillan/Media/Comp521F10Lecture17.pdf
> Ładnie, kolorowo, bez traści kodu z którego i tak nie skorzystamy ;-)

Co to znaczy, że B+ drzewa są "clustered"? z obrazka wynika , że oznacza 
to posortowane całe dane?

[toc] | [prev] | [next] | [standalone]


#29406

FromBorneq <borneq@antyspam.hidden.pl>
Date2017-02-07 23:52 +0100
Message-ID<o7dj2i$sm3$1@node1.news.atman.pl>
In reply to#29405
W dniu 07.02.2017 o 23:42, Borneq pisze:
> W dniu 03.02.2017 o 20:03, bartekltg pisze:
>> http://www.csbio.unc.edu/mcmillan/Media/Comp521F10Lecture17.pdf
>> Ładnie, kolorowo, bez traści kodu z którego i tak nie skorzystamy ;-)
>
> Co to znaczy, że B+ drzewa są "clustered"? z obrazka wynika , że oznacza
> to posortowane całe dane?
>
doczytałem: "Indeks nazywamy pogrupowanym (wewnętrznym) (ang. clustered) 
gdy zachodzi przypadek 1i) w definicji pozycji danych oraz plik danych 
jest posortowany według wartości klucza wyszukiwania tego indeksu. W 
rezultacie, rekordy o tej samej wartości klucza lub zbliżonej znajdują 
się na tej samej stronie lub tylko na kilku stronach dyskowych. Może być 
tylko jeden indeks pogrupowany, bo plik danych można posortować według 
wartości tylko jednego klucza wyszukiwania. Indeks, który jest nie 
pogrupowany jest nazywany indeksem zewnętrznym."

http://edu.pjwstk.edu.pl/wyklady/sbd/scb/w9.htm

[toc] | [prev] | [next] | [standalone]


#29397

From"M.M." <mmarszik@gmail.com>
Date2017-02-04 05:59 -0800
Message-ID<a3d894c6-6cb1-4923-ae7e-3fccab6103dc@googlegroups.com>
In reply to#29385
On Friday, February 3, 2017 at 2:07:18 PM UTC+1, Borneq 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.

A rozwiązanie najprostsze? Poprosić użytkownika o podanie pamięci 
jaką program może wykorzystać? Zasugerować użytkownikowi np. 50%
wolnego ramu?

Pozdrawiam

[toc] | [prev] | [next] | [standalone]


#29436

FromBartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl>
Date2017-02-21 21:40 +0000
Message-ID<slrnoapcv7.mge.bartek@kts.pwr.edu.pl>
In reply to#29374
Borneq <borneq@antyspam.hidden.pl> wrote:
> Mam program operujący na dużych plikach. Im więcej wczyta do pamięci na 
> raz tym szybciej zadziała. Ale nie może więcej czytać bo albo pamięć się 
> skończy albo zacznie się używania swapa.

Pod Linuksem:

cat /proc/meminfo | grep MemAvailable

B.

[toc] | [prev] | [next] | [standalone]


#29442

Fromgof@somewhere.invalid (Adam Wysocki)
Date2017-02-22 14:12 +0000
Message-ID<10Td9mr4uI6ecNv8%gof@news.chmurka.net>
In reply to#29436
Bartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl> wrote:

> Pod Linuksem:
> 
> cat /proc/meminfo | grep MemAvailable

UUOC

http://porkmail.org/era/unix/award.html

-- 
http://www.chmurka.net/

[toc] | [prev] | [next] | [standalone]


#29443

From"Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid>
Date2017-02-22 14:30 +0000
Message-ID<slrnoar842.mho.dozzie@jarowit.net>
In reply to#29442
On 2017-02-22, Adam Wysocki <gof@somewhere.invalid> wrote:
> Bartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl> wrote:
>
>> Pod Linuksem:
>> 
>> cat /proc/meminfo | grep MemAvailable
>
> UUOC
>
> http://porkmail.org/era/unix/award.html

A się zastanawiałem, czy mu wytknąć, że zabrakło mu cuta i awka.

-- 
Secunia non olet.
Stanislaw Klekot

[toc] | [prev] | [next] | [standalone]


#29444

Frombartekltg <bartekltg@gmail.com>
Date2017-02-22 15:32 +0100
Message-ID<o8k7dc$c48$1@node2.news.atman.pl>
In reply to#29442
On 22.02.2017 15:12, Adam Wysocki wrote:
> Bartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl> wrote:
>
>> Pod Linuksem:
>>
>> cat /proc/meminfo | grep MemAvailable
>
> UUOC
>
> http://porkmail.org/era/unix/award.html

</proc/meminfo | grep MemAvailable
U mnie nie działa. Ubuntu 16.

grep MemAvailable </proc/meminfo
To oczywiśćie działa.

Ale...
"The fact that the same thread ("but but but, I think it's cleaner / 
nicer / not that much of a waste / my privelege to waste processes!") 
springs up virtually every time the Award is posted is also Ancient 
Usenet Tradition."

Aby tradycji stało się za dość. Co złego w tym cat?
W babechach wielkiego nakładu pracy nie wykonujemy:)
Albo nie widzę jakiegoś problemu.

pzdr
bartekltg



[toc] | [prev] | [next] | [standalone]


#29445

Fromgof@somewhere.invalid (Adam Wysocki)
Date2017-02-22 14:53 +0000
Message-ID<11Td9msobI6ecNv8%gof@news.chmurka.net>
In reply to#29444
bartekltg <bartekltg@gmail.com> wrote:

> </proc/meminfo | grep MemAvailable
> U mnie nie działa. Ubuntu 16.

U mnie też nie.

> grep MemAvailable </proc/meminfo
> To oczywiśćie działa.

grep MemAvailable /proc/meminfo

Też zadziała.

> "The fact that the same thread ("but but but, I think it's cleaner / 
> nicer / not that much of a waste / my privelege to waste processes!") 
> springs up virtually every time the Award is posted is also Ancient 
> Usenet Tradition."
> 
> Aby tradycji stało się za dość. Co złego w tym cat?
> W babechach wielkiego nakładu pracy nie wykonujemy:)

Zalogujmy się na wolną maszynę, żeby lepiej to było widać... :)

gof@blade:~$ time for f in $(seq 1 100); do grep MemAvailable /proc/meminfo; done > /dev/null

real    0m1.201s
user    0m0.532s
sys     0m0.360s

gof@blade:~$ time for f in $(seq 1 100); do cat /proc/meminfo | grep MemAvailable; done > /dev/null

real    0m1.835s
user    0m0.908s
sys     0m0.656s

No i tworzymy dwa procesy zamiast jednego, i przelewamy z pustego 
w próżne (więcej syscalli)...

> Albo nie widzę jakiegoś problemu.

Dla zasady :)

-- 
http://www.chmurka.net/

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | pl.comp.programming


csiph-web