🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #812

Re: Rezerwacja pamieci

#812
From: Marek Kotowski
Date: Thu, 22 Jan 1998 16:23
55 lines
3202 bytes
Mirek Prywata wrote:
> Co do huge, to zgodze sie w zupelnosci. Natomiast jezeli chodzi o
> graniczenia typu 32767...
[...]

> Przy dzisiejszych wielkosciach RAMu, dbalosc o to, by pojedyncze bloki
> byly mniejsze niz 32kB uwazam za pewna przesade.
> Czy nie jest tez tak, ze zgodnie z ANSI ostatnio zmieniono 32kB na 64kB?
> I czy w ANSI ogranczenie to dotyczy tylko tablic statycznych (caly moj
> wywyod dotyczy tylko tablic dynamicznych)?

1. 32 K jest ograniczeniem nakladanym przez standard. Kompilator 
zgodny ze standardem nie ma obowiazku obslugiwac obiektow danych
wiekszych niz 32 K, i to niezaleznie, czy znajduja sie one w
pamieci dynamicznej czy statycznej. 

2. Zwiekszenie limitu 32K do 64K proponuje sie w nowym standardzie
ANSI (przynajmniej takie chodza sluchy). I pewnie autorzy 
standardu z tym sie zgodza. Tym bardziej, ze wiekszosc 
istniejacych kompilatorow akceptuje tablice o takim rozmiarze.
Ale do oficjalnego zatwierdzenia zmiany limitu uplynie jeszcze
troche czasu.

3. Pragne zwrocic uwage, ze w poscie wyjsciowym byl pomysl 
alokacji obszaru ok. 300K. To juz jest konstrukcja, z ktora
- smiem twierdzic - duza czesc, jesli nie wiekszosc kompilatorow
sobie nie poradzi. Co wiecej: sposob dzialania modeli huge
jest rozny w rozych kompilatorach. Zatem stosujac taki
model pamieci, ryzykuje sie, ze zmiana kompilatora na inny,
takze obslugujacy model huge, moze wymagac zmian w programie.

4. Wbrew pozorom ograniczenie rozmiaru zmiennych 
do 32767 nie jest niezyciowe. Zdarzylo mi sie kilka razy
miec tablice wskaznikow w modelu small (male dane). Tablice
te nie przekraczaly owego limitu 32K. Otoz zmiana modelu na
large (duze dane) spowodowala, ze rozmiar wskaznikow
podwoil sie i tym samym podwoila sie tablica. Wprawdzie
przekroczyla limit 32K, ale zmiescila sie w limicie 64K,
i w programie nie trzeba bylo nic zmieniac (chociaz stal
sie on formalnie nieprzenosny). Gdybym w modelu small
zwiekszyl tablice do rozmiaru 40K, mialbym juz klopoty
z przeniesieniem jej do modelu large (linker nie
przyjmowal obiektow wiekszych niz 64K).
  I prawde rzeklszy, czyz male nie jest piekne? :-)

5. Oczywiscie sa aplikacje szczegolne, gdzie alokowanie
duzych obszarow pamieci jest konieczne. To inna sprawa.
Akurat w poscie wyjsciowym w tym watku takiej sytuacji
prawdopodobnie nie bylo. A zasady dobrego stylu nakazuja
- poprawie sie: zalecaja :-) - by w miare mozliwosci 
unikac stosowania konstrukcji nieprzenosnych.

  Pozdrawiam

  Marek Kotowski
Technical Details
Message-ID: <34C77265.11BB@imm.org.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!not-for-mail
References: <34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.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.nask.pl!not-for-mail
From: Marek Kotowski <mkot@imm.org.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Rezerwacja pamieci
Date: Thu, 22 Jan 1998 17:23:01 +0100
Organization: Instytut Maszyn Matematycznych
Lines: 55
Message-ID: <34C77265.11BB@imm.org.pl>
References: <34C4F3AB.C34902CC@willow.iie.pz.zgora.pl> <34C5BEC9.2018@imm.org.pl> <34c73f51.1429095@news.icm.edu.pl> <34C70746.46AB@imm.org.pl> <34C7636B.33829801@fuw.edu.pl>
NNTP-Posting-Host: 148.81.238.53
Mime-Version: 1.0
X-Mailer: Mozilla 3.01Gold (Win95; I)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit