Article View: pl.comp.os.advocacy
Article #2867Re: Używanie narzędzi M$ przez studentów
From: Piotr Trzcionkowski
Date: Thu, 15 Jan 1998 22:53
Date: Thu, 15 Jan 1998 22:53
221 lines
10971 bytes
10971 bytes
15 Jan 1998 13:26:53 GMT, "Jaroslaw Lis" <lis@papuga.ict.pwr.wroc.pl> napisał(a): >: >Do tego żeby Szkapa zaczęła gadać po polsku >: >wystarczy wrzucić sobie w katalog domowy plik tekstowy o rozmiarach od 240 >: >do 300 parę KB (w zależności od wersji) i poprostu ją wystartować. > >: O boziu, zaczyna się ta sama dyskusja. > >: Plik tekstowy ma sekwencyjną naturę. Jedynym rozsądnym sposobem >: skorzystania z niego jest przeczytanie całości od początku do końca. >: Toteż programy tak robią i wszystko ładują do pamięci. Całe te >: 240..300KB wylądowało więc w pamięci. Gdyby nawet program usiłował >: pominąć jakieś rzadko używane fragmenty to w perspektywie miałby >: przeglądanie całego pliku lub zorganizowanie tego tak jak poniżej, ale >: "na piechotę". > >Czesciowo sie mylisz. W Unix'ach od lat sa sposoby otwarcia pliku >takie ze udaje on pamiec. Otwarcie zwraca Ci adres pamieci pod ktorym >plik "jest", a jak zaczynasz czytac ten obszar pamieci, to dopiero >wtedy swapper dba o to zeby program odczytal prawidlowe dane. Są też zwykłe funkcje do binarnego czytania pliku :-) >Tyle ze jesli to czysty plik tekstowy, to najpierw wypadaloby go >"przeskanowac" celem np zapamietania indeksow. Co troche zmniejsza >wydajnosc. No jasne tylko żadnemu autorowi to do głowy nie przyszło. A gdyby przyszło to musiałby napisać kod wykorzystywany wyłącznie przez niego bo przecież nie skłoni innych autorów do używania tego rozwiązania. Czyli nie dość, że straci kupę czasu to jeszcze wyprodukuje kolejne KB kodu, który gdzieś musi się podziać. > >: Teraz opiszę jak to wygląda w Windows. Zamiast plików tekstowych są >: binarne. Cechą plików binarnych jest możliwość skakania po nich. >: Wymaga to oczywiście pewnej organizacji jednak pozwala na >: skonstruowanie czegoś takiego jak windowsowe zasoby. Zasoby to różnego >: rodzaju dane czy to ciągi, czy np. bitmapy, które są połączone z >: plikiem wykonywalnym, lecz nie są wczytywane do pamięci wraz z >: uruchomieniem programu. Dopiero jawne odwołanie się w kodzie programu >: do zasobu powoduje, że znajdzie się on w pamięci fizycznej. Czyli >: jeśli program wyświetla okienko z zapytaniem to tylko wtedy. > >Jesli wspominasz o bitmapach, to i pod unixami sa one zazwyczaj "binarne", >i jesli sa w osobnych plikach to efekt jest dokladnie ten sam. Otóż nie. Specyfiką zasobów jest możliwość ich wielokrotnego wykorzystania, czyli np. dwa programy korzystają ze wspólnych lub jeden program w wielu miejscach przy czym w pamięci znajduje się tylko jeden egzemplarz. Oczywiście z plikami na dysku też możnaby to zrobić, np. poprzez mapowanie w pamięci, ale najczęściej się tego nie robi bo trzeba to oprogramować. Tymczasem obsługa zasobów w Win jest już wbudowana. >Jesli myslisz o "text table", to masz troche racji, ale: >1) Windows chyba i tak musi ten fragment przeskanowac zeby znalezc > indeksy poszczegolnych tekstow. Nie. Są sortowane, więc nie trzeba ich dodatkowo indeksować. >2) komunikaty sa rozrzucone, a blok wczytywany z dysku zwykle spory > wiec kilkanascie uzywanych czesto komunikatow to bedzie pewnie > koniecznosc zaladowania kilkudziesieciu KB - czyli polowy pliku Zależy o czym mówimy, zasoby są wyodrębnionym kawałkiem i jeśli nawet są czytane stronami i nieszczęśliwie wykorzystują połowę to nadal druga jest zaoszczędzona. Teraz odnieś to do 300KB zasobów tekstowych NC. Popatrz na ekran tego programu i przyznaj, że jak jakieś 10KB jest wykorzystane to jest dobrze. >3) czasy takie ze wczytanie calych 300KB do pamieci trwa 50ms, > a wczytanie 4KB - 30ms. To co sie bardziej oplaca ? Tylko, że chodzi o zasoby, które prędzej czy później kończą się. Kiedy się skończą już nic nie pomoże! >4) jak bardzo,bardzo potrzebujesz wersje polska to przy pliku tekstowym > poprawisz te komunikaty sam. Przypliku binarnym ... tez, o ile > masz program do poprawiania. Problem tkwi przede wszystkim w chęciach. Swego czasu rzuciłem hasło, że mogę zlinkować NC jak ktoś przetłumaczy to. ... i wszyscy się zmyli. >5) mimo ze jest "string table" w resourcach, to nie wszystkie komunikaty > programow MS sie tam mieszcza. Napisz do MS, co mnie to > >6) jak juz wspominalismy - grep szybciej przeszukuje pliki tekstowe, niz > regedit binarne :-) Tylko, że jak już wspominałem wyszukanie wybranego klucza grep robi wielokrotnie wolniej niż regedit (oczywiście w cudzysłowiu bo on trochę do czego innego jest). Weź chłopie zastanów się co gadasz a nie powtarzaj w kółko jednego argumentu. Twój pomiar był kompletnie bezsensowny i dobrze o tym wiesz. A jak nie wiesz to się dowiedz :-) > >7) stosowanie funkcji alokujacych i zwalniajacych zasoby jawnie - wydluza > program i zwalnia pamiec. Chyba lepiej bedzie jak zrobi to > automatycznie swapper systemowy - w razie potrzeby. Otóż nie. Zasoby mają taką właściwość, że nawet jeśli są zwolnione, leżą w pamięci póki jej nie braknie, wtedy dopiero system wymiata to co jest najrzadziej używane. Zasoby wykorzystywane często, będą leżały w pamięci. Dokładając współdzielenie można się spodziewać znacznego zysku. Też system alokuje na różne sposoby 150MB podczas gdy mam tylko 32MB z czego ok. 8MB jest zablokowanych. 5 razy więcej pamięci niż fizycznej ! > >: Jako, że >: wiadomo, gdzie (w exe,dll) mieści się oryginał, pamięć zajęta przez >: niego nigdy nie zostanie wymieciona do pliku wymiany tylko co najwyżej >: zwolniona. > >Przy wspomnianym specjalnym trybie otwierania pliku na unixie >bedzie to samo. Tyle ze nie wiem czy sie oplaca. Przy wczytywaniu pliku >mozna z niego troche usunac i z 200KB zrobi sie 50. A pod Windowsem > >: Z tego też powodu plików używanych w systemie windows nie >: da się modyfikować, kiedy są "uruchomione". > > >Tu za przeproszeniem programistow z MS nalezy odeslac na kurs unixa. >Tu od samego poczatku mozesz sobie pliki kasowac, zakladac, zmieniac >nazwy, nie bacza na rownolegle dzialajace programy - a wszystko >ciagle dziala, w dodatku z pewnym sensem :-) Po co, np. tak miałoby to wyglądać? Masz w 95 pliki wieloinstancyjne z tym jednak zastrzeżeniem, że każdy z nich można przekonać by był używany na wyłączność. Nie karm się tym co tam ktoś napisał w L+ przy okazji EXT2 bo to bujda. Czasy się zmieniają, wraz z nimi systemy. A linuxiarze ciągle Ci sami. Jeden to mi wmawiał, że w Win nie da się zaalokować większego bloku pamięci niż fizyczna kiedy jest wystarczająco wirtualnej. >A nie - program sie wysypal, pliku skasowac nie moge, bo winda >mysli ze program ciagle dziala, no coz - troche dziala bo >"program nie odpowiada i nie moge go zakonczyc" :-) On tylko przestał obsługiwać kolejkę komunikatów. Nadal można go zabić jak robi się to pod unixami. Są programy nie używające w ogóle kolejki. > >: W taki to właśnie sposób >: da się oszczędzić ogromne ilości pamięci i nigdy całe 300KB nie >: znajduje się w pamięci tylko jakiś skromny procent. > >I to bezczelnie piszesz o systemie ktoremu pamieci nigdy za duzo :-) >64MB - swapuje, 128MB - swapuje, A to już kwestia programów. Uruchom sobie jakiegoś Office'a na Linuxie i zobaczymy jak będzie pracował. Czy np. uruchomisz kilka egzemplarzy na takim samym komputerze ? Popatrz jakie mają możliwości czy mogą wykorzystywać inne programy do rozszerzenia swoich zdolności. >256MB - swapuje, 512MB - nie obsluguje tak >duzo :-) nawet jak wyciągniesz wtyczkę to swapuje :-) > >Dyski potanialy, i to nie jest 300KB pamieci, tylko 300KB swapa na dysku. >Tyle ze troche tracimy przy jego zapisie. [O ile nie stosujemy podanych >technik otwarcia]. > >: Niektóre z języków >: programowania robią jeszcze lepszą robotę. Np. w Delphi >: resourcestringi są integralną częścią języka. Odwołuje się do nich jak >: do zwykłych łańcuchów tekstowych. Nie dość tego Delphi próbuje >: odnaleźć właściwy moduł językowy na podstawie locale i lokalizacja >: polega na podłożeniu modułu (już tylko zasoby, bez kodu) dla danej >: wersji językowej. > >Przeciez to to samo :-) [co pod unixem - zewnetrzny modul] >Tylko co z tego - MS zwalczy Delphi :-) Prędzej kupi. To wcale nie jest śmieszne ponieważ Borland ma kłopoty, zapchał rynek tanimi wersjami Delphi i klienci już nie kupują tak dużo a pewnie firma rozrosła się ponad miarę. Tymczasem co rusz jakiś użytkownik VC sięga po Delphi. Oczywiście pomijam tutaj maniaków bo tacy zawsze zrobią w/g własnego uznania. Ostatnio na pl.comp.lang.delphi pojawiło się takie proste zapytanie "Co w Delphi 4.0 ?" (którego jeszcze nie ma). Zainteresowanie okazało się fenomenalne. Samego mnie to zaskoczyło. > >: Jak widać Linux "może się schować" ze swoimi pliczkami tekstowymi. >: ZAWSZE będzie zżerał więcej zasobów (rozumianych ogólnie). > >Czy "zawsze" to bym sie spieral, ale za to zyskujemy elastycznosc - >a osobiscie uwazam to za wazniejsze. Zasoby szybko tanieja :-) Co nie zmienia faktu, że Kloczek ma zwidy odnośnie tego konkretnego przykładu. > >: A cały ten wywód dowodzi tylko jak bardzo ograniczona jest wiedza >: linuxiarzy na temat nowoczesnych technik w szczególności tych >: zastosowanych w windows. > >Ktorem Windows? Win32? byc moze. Win95/nt. > >Ale to co piszesz jest od Win 3.0 - wybacz, najbardziej udziwnione >zarzadzanie pamiecia ktore zdarzylo mi sie zobaczyc... Niestety to co było w <=3.1 już funkcjonuje inaczej. Przede wszystkim płaski model pamięci pozbawiony ograniczeń DPMI. Oczywiście nadal zachowuje kompatybilność wsteczną. http://www.cto.us.edu.pl/~trzcionk/
Technical Details
Message-ID:
<34c24e06.625536479@zeus.polsl.gliwice.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.memax.krakow.pl!news.wnaft.agh.edu.pl!polsl.gliwice.pl!newsadmReferences:
<69g437$9md$1@sunrise.pg.gda.pl> <35251cc3.481832191@zeus.polsl.gliwice.pl> <34BCECBE.4019@krysia.uni.lodz.pl> <69j1lq$a6b$2@newsfeed.onet.pl> <69jane$2m8$1@sunrise.pg.gda.pl> <34fd7c93.571909582@zeus.polsl.gliwice.pl> <69l2qt$6h9$13@okapi.ict.pwr.wroc.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.memax.krakow.pl!news.wnaft.agh.edu.pl!polsl.gliwice.pl!newsadm From: ZmieńNa_trzcionk@us.edu.pl (Piotr Trzcionkowski) Newsgroups: pl.comp.os.advocacy Subject: Re: Używanie narzędzi M$ przez studentów Date: Thu, 15 Jan 1998 22:53:08 GMT Organization: Uniwersytet Śląski Lines: 221 Message-ID: <34c24e06.625536479@zeus.polsl.gliwice.pl> References: <69g437$9md$1@sunrise.pg.gda.pl> <35251cc3.481832191@zeus.polsl.gliwice.pl> <34BCECBE.4019@krysia.uni.lodz.pl> <69j1lq$a6b$2@newsfeed.onet.pl> <69jane$2m8$1@sunrise.pg.gda.pl> <34fd7c93.571909582@zeus.polsl.gliwice.pl> <69l2qt$6h9$13@okapi.ict.pwr.wroc.pl> Reply-To: ZmieńNa_trzcionk@us.edu.pl NNTP-Posting-Host: rap-wct174.katowice.tpnet.pl Mime-Version: 1.0 X-Newsreader: Forte Agent 1.5/32.452 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit