Article View: be.comp.programming
Article #10786Re: new operator faalt
From: Marco van de Voort
Date: Tue, 26 Feb 2002 11:55
Date: Tue, 26 Feb 2002 11:55
50 lines
2724 bytes
2724 bytes
In article <a5dvl8$6h8eb$1@ID-65051.news.dfncis.de>, Armin Gerritsen wrote: > "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. :-) Je kan de pijn daarvan wat verzachten door meerdere lijsten met grootte categorien te maken. Dus niet een list met ongebruikte blocks, maar meerdere, voor meerdere ranges. > - heap 'defragmenteren'. Zo ja hoe? Niet mogelijk bij gecompileerde talen. > - heap vergroten? Zo ja hoe? Zou automatisch moeten gaan, met een initiele waarde (om startup vertraging te voorkomen) Zie de diverse menutjes. > - Iets anders? Andere heapmgr. Zit je in een debug mode? Dan zou het kunnen zijn dat de echte app het probleem niet/minder heeft. Debug modes gebruiken wel eens speciale heapmgrs om bepaalde dingen (memleaks, corruption) te kunnen tracen.
Technical Details
Message-ID:
<slrna7mtub.gom.marcov@toad.stack.nl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!proxad.net!newshub.bart.net!news.tue.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: 107324,3fd870920848f7cb X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,3fd870920848f7cb X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-02-26 03:56:12 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!proxad.net!newshub.bart.net!news.tue.nl!not-for-mail From: Marco van de Voort <marcov@toad.stack.nl> Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: new operator faalt Date: 26 Feb 2002 11:55:23 GMT Organization: Eindhoven University of Technology, The Netherlands Lines: 50 Message-ID: <slrna7mtub.gom.marcov@toad.stack.nl> References: <a5dl0m$6cu90$1@ID-65051.news.dfncis.de> <3C7A5882.3B898C88@iae.nl> <a5dvl8$6h8eb$1@ID-65051.news.dfncis.de> NNTP-Posting-Host: toad.stack.nl User-Agent: slrn/0.9.7.3 (FreeBSD)