Kolejna ³ata.
Marcin Dalecki
dalecki w cs.net.pl
Wto, 23 Lut 1999, 09:12:04 CET
Tomasz K³oczko wrote:
>
> On Tue, 23 Feb 1999, Marcin Dalecki wrote:
> [..]
> > > W porzadku, ksh moze byc szybszy w configure, niech sobie bedzie.
> > > sktypty startowe nie maja tak duzo przetwazania natomiast uruchamiaja sie
> > > nawzajem na prawo i lewo.
> > > Dla mnie wazne jest ze 2 uruchomione bashe zajmuja mniej pamieci niz
> >
> > MYLISZ SIE KOLEGO, ALBO UMY¦LNIE K£AMIESZ. ZERKNIJ:
> >
> > PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
> > 0 0 964 964 772 S 0 0.0 2.0 0:00 bash
> > 208 root 0 0 952 952 768 S 0 0.0 2.0 0:00 bash
> > 215 root 0 0 488 488 408 S 0 0.0 1.0 0:00 ksh
>
> Nigdy do tych liczb nie przywi±zywa³em wielkiej wagi i dlatego nie
> zabardzo wiem co poszczególne liczby tak napradê w powyzszym oznaczaj±.
> Zajrza³em sobie do ps(1) ¿eby siê nieco douczyæ ale te¿ to jako¶ tak nie
> za bardzo do mnie dociera. No dobra czyli z mana:
Sprobuje wiec wyjasnic jak interpretowac powyzsze liczby.
Po pierwsze wszystkie sa wziete ze swiezo odpalonych programow.
To widac w polu TIME. Nie skonsumowalu one jak do tej pory jeszcze nawet
pelnej
sekundy CPU.
Po drugie bylem nawet nieco niefair dla ksh bo moj bash to 1.14.7 a nie
2.02, ktory jest jeszcze wiekszy!
A teraz do poszczegolych pol.
> SIZE Virtual image size; size of text+data+stack.
Tak jak widzisz to pelna wielosc zajmowanej wirtualnej przestrzeni
adresowej
przez dany program
> RSS Resident set size; kilobytes of program in memory.
To ilosc bajtow zajmowanych w faktycznej pamieci przez dany program.
> SHARE
> Shared memory.
To ilosc pamieci wspoldzielonej z innymi przez dany program.
W tym wypadku widzimy wiec, ze bash zajmuje tuz po odpaleniu
jakies 970kbajtow a ksh tylko 488.
Gdy programu UNIX-owe pracuja to rezerwuja dodatkowo pamiec ale
*nigdy* (no prawie nigdy) jej nie zwalniaja spowrotem do systemu.
Wieloksc programow wiec w zasadzie tylko moze rosnac.
Stad te dziwne sizey u Ciebie. Nie sa one wiec miarodajne co do
faktycznego aktualnego spozycia pamieci. Nalezy tak jak ja to zrobilem
w pierwszej kolejnosci porownywac programy tuz po odpaleniu, aby sie
przekonac, ile wspoldziela i ile danych niewspoldzielych potrzebuja.
Powrocmy wiec do moich danych.
RSS i SHARED basha wynosi raz 964 i 772 lub 952 i 768. Czyli
niewspoldzieli, no jakies 192/184k bajtow. Tyle mniej wiecej
bash po odpaleniu potrzebuje pamieci dla samego siebie. I ja
tu mowie o bash-u 1.14! bash-2.02 potrzebuje jeszcze wiecej miejsca!
Prosze rowniez pamietac ze te 772/768 jest w pewnym stopniu
wspoldzielone pomiedzy tymi dwoma bash-ami z tego pewie jakies 400k
odpada na libc. Tak wiec faktyczne spozycie pamieci przez bash-a
wynosi ca 190 + 770 - 400 - 200= 360 k bajtow. (odjalem 200
zakladajac ze bash owiele wiecej funkcji a libc wykozystuje.)
Natomiast ksh siedzi 488 bajtami i jest tam w calosci (RSS=SIZE)
bo ja mam dosc pamieci w mojej maszynce. Czyli jego pelna wielkosc
liczac kod i wszystkie przezen zarezerwowane domyslnie dane to TYLKO
POLOWA, powtarzam POLOWA tego co potrzebuje bash.
Z tego wszystkiego wspoldzieli on 408. Poniewaz ni widu ni slychu
po drugim ksh na tym systemie bylo te 408k bajtow to w wiekszosci
wspoldzielone z biblioteka libc. Sam wiec ksh potrzebuje wlasnej
niepodzielnej pamieci zaledwie 80k na dane. Sklamalem wiec
powyzej dla uproszczenia dydaktycznego mowiac o polowie potrzeben
pamieci. To sie w rzeczywistosci ma jak 80k do 360k bajtow!!!
> i za bardzo nadal nie wiem jak to interpretowaæ .. jak kalkulowaæ ile
> zajmie kolena instacja tej samej binarki.
> Po za tym .. Marcin czy ty maszh jeszcze basha 1.4.x ?
> Bo mi podobny eksperyment pokazuje znacznie wiêksze liczby:
>
> USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
> kloczek 352 0.0 0.8 2384 1148 1 S 19:41 0:00 -bash
> kloczek 2854 0.0 0.9 2444 1180 p0 S 21:54 0:00 -bash
> kloczek 15018 0.5 0.3 1272 492 p0 S 08:28 0:00 ksh
>
> Wiem .. niedouczony jestem i dlatego pro¶ba o pomoc w interpretacji
> powy¿szych przyk³adów. No i z czego wynikaæ mog± tak du¿e ró¿nice w
> kolumnach RSS, SIZE (?).
No mam nadzieje ze co nieco wyjasnilem na sniadanie...
I wyjasnia to chyba rowniez moje dosc intensywne reakcje na tych
co to bez namyslu, rozeznania i zielonego pojecia twierdza,
ze dwa bash-e tak piknie sie wspoldziela, ze nie warto startowac
czegokolwiek innego. W rzeczywistosci: Gowno! To sam jeden bash
tak pamiec zre, ze trodno mu czymkolwiek innym dorownac w
kategorii shellow. A dzielic sie ma czym i dzieli sie sporo,
tylko tyle jeszcze rezerwuje sam dla siebie ze lzy w oczach
staja...
> I jeszcze jedno co mi przychodzi na my¶³ to to czy przypadkiem ksh nie
> nadawa³by siê na kandydata na statycznie skompilowanego shella. Bo mi siê
> wydaje ¿e by³oby to dobre ze wzglêdu na jego rozmiary.
Tak owszem.
> Do tego mam jeszcze pytanie odno¶nie u¿ywania samego ksh .. czy da³oby siê
> go jaki¶ skonfigurowaæ/przerobiæ ¿eby historiê poleceñ i same poprzenie
> polecenia mo¿na by³o przegl±daæ i nawigowaæ po nich za pomoc± kursorów ?
Nie jestem pewny ale chyba da sie go tak nawet skofiguraowac.
Jesli nie to lata powinna byc latwa do zrobienia :-).
To jest wlasciwie rowniez u mnie jedynym powodem dlaczego
uzywam bash-a nadal jako shella interakcyjnego i chyba sie tez od
tego wyzwole... dzis wieczorem.
--Marcin
Więcej informacji o liście dyskusyjnej pld-devel-pl