🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #10777

Re: new operator faalt

#10777
From: Stefan Arentz
Date: Mon, 25 Feb 2002 19:53
53 lines
3288 bytes
"Armin Gerritsen" <armin.gerritsen.DELETE@philips.com> writes:

> "Johan Wevers" <johanw@iae.nl> wrote in message
> news:3C7A5882.3B898C88@iae.nl...
> 
> > > Mijn vraag is dus eigenlijk waarom faalt een new-operator? Documentatie
> zegt
> > > bijvoorbeeld als er niet genoeg geheugen vrij is. Maar 300MB lijkt me
> toch
> > > genoeg voor 14kB? :-)
> >
> > > Iemand enig idee?
> 
> > Heap fragmentation? Alloceer eens een geheugenblok van 15kb in het begin,
> en
> > geef dat vrij net voordat je de new die crasht uitvoert. Als het dan goed
> gaat
> > heb je kans dat dat het probleem is.
> 
> Inderdaad!
> Dat is het probleem. Bedankt.
> 
> Nu nog de vraag hoe ik het op moet lossen.
> 
> - Ik kan mijn programma omschrijven dat ik aan het begin 'worst-case'
> allocaties doe en die buffers herbruik. Nadeel is echter wel dat ik niet met
> 100% zekerheid kan zeggen wat 'worst-case' is (maar wel wat het nooit zal
> zijn) en dus onnodig groot moet zitten in mijn algorithmes. Ook is er een
> verschil tussen 'worst-case' en gangbaar. M.a.w. mijn app gaat flink
> geheugen verspillen. Is een optie als niets anders kan, maar liever een
> andere proberen. :-)
> 
> - heap 'defragmenteren'. Zo ja hoe?

Hmja, dat kan niet bij pointers. Handles (pointers die wijzen naar
een pointer) wel, maar dan heb je een compleet ander model wat niet
zo 123 werkt met new/delete.

> - heap vergroten? Zo ja hoe?
> - Iets anders?

Ja, je geheugen management taktiek aanpassen :-)

Ik ben geen Windows held of zo, maar als je nog 300MB vrij hebt dan lijkt
het me dat er iets mis is. Om de een of andere reden wil je heap niet
groeien, dus wellicht kan je iets instellen in je applicatie of een WIn32
API call gebruiken om het systeem er van te overtuigen dat wel te doen.

Meestal hoef je je over dit soort dingen geen zorgen te maken. Mits je
echt extreme eisen qua snelheid en allocatie hebt, dan zijn er wel leuke
truukjes. Maar wat jij aan het maken bent klinkt niet zo.

  Stefan
Technical Details
Message-ID: <rnn0xx5oe2.fsf@keyser.soze.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.174.75.178!news-fra1.dfn.de!news-lei1.dfn.de!newsfeed.freenet.de!newsfeed.wirehub.nl!kleenex.wirehub.nl!news.wirehub.nl!not-for-mail
References: <a5dl0m$6cu90$1@ID-65051.news.dfncis.de> <3C7A5882.3B898C88@iae.nl> <a5dvl8$6h8eb$1@ID-65051.news.dfncis.de>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,3fd870920848f7cb
X-Google-Attributes: gidfcea4,public
X-Google-Thread: 107324,3fd870920848f7cb
X-Google-Attributes: gid107324,public
X-Google-ArrivalTime: 2002-02-25 11:53:51 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!193.174.75.178!news-fra1.dfn.de!news-lei1.dfn.de!newsfeed.freenet.de!newsfeed.wirehub.nl!kleenex.wirehub.nl!news.wirehub.nl!not-for-mail
From: Stefan Arentz <stefan@keyser.soze.com>
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: new operator faalt
Date: 25 Feb 2002 20:53:41 +0100
Organization: Wirehub! Internet, The Netherlands
Lines: 53
Message-ID: <rnn0xx5oe2.fsf@keyser.soze.com>
References: <a5dl0m$6cu90$1@ID-65051.news.dfncis.de> <3C7A5882.3B898C88@iae.nl> <a5dvl8$6h8eb$1@ID-65051.news.dfncis.de>
NNTP-Posting-Host: newsreader2.wirehub.nl
X-Trace: thor.wirehub.nl 1014666822 52727 195.86.128.19 (25 Feb 2002 19:53:42 GMT)
X-Complaints-To: abuse@wirehub.net
NNTP-Posting-Date: 25 Feb 2002 19:53:42 GMT
X-Newsreader: Gnus v5.5/XEmacs 20.3 - "Vatican City"
Cache-Post-Path: newsreader2.wirehub.nl!unknown@keyser.soze.com
X-Cache: nntpcache 2.4.0b2 (see http://www.nntpcache.org/)