Article View: pl.comp.lang.pascal
Article #92630Re: Kolejna prowokacja do dyskusji
From: Andrzej Grażyński
Date: Wed, 24 Sep 2008 06:40
Date: Wed, 24 Sep 2008 06:40
44 lines
3389 bytes
3389 bytes
Łukasz 'Maly' Ostrowski pisze: > Andrzej Grażyński wrote: >>> Nie rozumiem powodu dla którego VMT lokalnych typów obiektowych >>> nie mógłby trafić do globalnego obszaru VMT.. oprócz oczywiście >>> kwestii zaśmiecania designersko-pierwotnie względnie małego >>> segmentu DS. >>> >> Teoretycznie masz rację. Ale: 100 lokalnych obiektów, z których w >> danym czasie zdefiniowany będzie tylko 1. 99 tablic VMT >> bezproduktywnie zajmuje miejsce. Choć prawdę mówiąc dziś programista >> MUSIAŁBY tak zrobić deklarując wszystkie obiekty jako globalne. > > To jest nadal, powiedzmy 100 * 10 (powiedzmy średnio tyle entriesów > jest w VMT) * 2 = 2kb - to nie jest jakaś powalająca zajętość > 64kb DS'a. [względnie]. > > Pozatym, jak Pan wspomniał, jeżeli lokalnych obiektów nie można > deklarować, to i tak kończymy na zaśmiecaniu globalnej przestrzeni > VMT deklarując te typy globalnymi. > >> I do dziś nie rozumiem: skoro tablice VMT są niezmienne, czemu nie >> wepchano ich w kod, jak stringów i setów? Pewnie tylko dlatego, żeby >> można tablicę VMT identyfikować wyłącznie przez offset. Szkoda im było >> tych dwóch bajtów w VMTLink, a Getmem/New/Konstruktor i tak >> zaokrąglało do ośmiu (w BP7 protected do czterech). > > > Czyli jak? Zaoszczędzili na dwóch bajtach adresu, biorać sam offset > w DS, dorzucając wyrównanie VMTów do 8b w przestrzeni DS? W > cudzysłowiu marnując te kilka bajtów > bajtów? > Bzdura ;). > Myślenie było takie: dla danej klasy VMT jest jedna, a instancji mogą być tysiące. I dlatego trzeba oszczędzać każdy bajt na instancjach. Całej pamięci było wtedy raptem 640K. No ale w powietrzu krążyła już nieoficjalnie specyfikacja DPMI, z perspektywą 16MB pamięci fizycznej i 8K*64K = 512MB pamięci (wirtualnej) na stercie. I dzisiaj (bo po 15 latach kilka moich systemów Turbo Pascalowych ma się bardzo dobrze i są dobudowywane nowe funkcje) mam te 512M (prawie), ale segment DS jest bliski granicy. Wtedy nikt nie myslał o DPMI, wtedy trzeba było zrobić nową wersję TP. No i były już nakładki (od wersji 5.0, obiekty pojawiły się w 5.5).
Technical Details
Message-ID:
<gbcndj$lbc$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.astercity.net!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mailReferences:
<20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl> <gb8t32$mv$1@news.onet.pl> <gb960q$fjg$1@news.dialog.net.pl> <gbau40$e6v$1@news.onet.pl> <gbbb7t$r4n$1@news.dialog.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.astercity.net!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail From: Andrzej Grażyński <grazynsk@petex.com.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Kolejna prowokacja do dyskusji Date: Wed, 24 Sep 2008 08:40:40 +0200 Organization: Onet.pl Lines: 44 Message-ID: <gbcndj$lbc$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl> <gb8t32$mv$1@news.onet.pl> <gb960q$fjg$1@news.dialog.net.pl> <gbau40$e6v$1@news.onet.pl> <gbbb7t$r4n$1@news.dialog.net.pl> NNTP-Posting-Host: 83-238-226-107.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1222238451 21868 83.238.226.107 (24 Sep 2008 06:40:51 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Wed, 24 Sep 2008 06:40:51 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <gbbb7t$r4n$1@news.dialog.net.pl> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit