Article View: be.comp.programming
Article #10777Re: new operator faalt
From: Stefan Arentz
Date: Mon, 25 Feb 2002 19:53
Date: Mon, 25 Feb 2002 19:53
53 lines
3288 bytes
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-mailReferences:
<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/)