Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #29374 > unrolled thread
| Started by | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| First post | 2017-02-02 19:51 +0100 |
| Last post | 2017-02-22 15:19 +0000 |
| Articles | 20 on this page of 21 — 8 participants |
Back to article view | Back to pl.comp.programming
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 →
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-02-02 19:51 +0100 |
| Subject | Jak 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]
| From | Maciej Sobczak <see.my.homepage@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> |
|---|---|
| Date | 2017-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]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | antispam@math.uni.wroc.pl |
|---|---|
| Date | 2017-02-04 02:16 +0000 |
| Subject | Re: 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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Date | 2017-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]
| From | "M.M." <mmarszik@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Bartłomiej Golenko <bartek@zts.ita.pwr.wroc.pl> |
|---|---|
| Date | 2017-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]
| From | gof@somewhere.invalid (Adam Wysocki) |
|---|---|
| Date | 2017-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]
| From | "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> |
|---|---|
| Date | 2017-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]
| From | bartekltg <bartekltg@gmail.com> |
|---|---|
| Date | 2017-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]
| From | gof@somewhere.invalid (Adam Wysocki) |
|---|---|
| Date | 2017-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