Mocht je toch willen proberen om C++ te gebruiken, dan heb je misschien iets aan deze links:
http://www.codeproject.com/Articles/228 ... -Using-JNI
http://en.wikipedia.org/wiki/Java_Native_Interface
Verhip, je hebt gelijk. I stand corrected. Toen ik leerde programmeren in Java (lang lang geleden) was het nog: "geen cyclische referenties want reference counting", dacht ik. Blijkbaar is dat in latere versies van Sun/Oracle opgelost: http://stackoverflow...erences-in-javaMath-E-Mad-X schreef: ↑do 13 dec 2012, 15:21Ik heb het voor de zekerheid nog eens na gezocht, maar ook deze bron:
http://www.oracle.co...g-6-140523.html
bevestigd dat de verscheidene garbage collectors van sun wel degelijk allemaal gebruik maken van mark & sweep, en dus niet van reference counting.
JNI zou ik afraden, het is niet eenvoudig, is vrij traag en eigenlijk is Java tegenwoordig niet bijzonder veel trager dan gemiddelde C++ code. De paar procenten gaan het niet maken. http://en.wikipedia....ative_InterfaceLandro schreef: ↑vr 14 dec 2012, 14:41Mocht je toch willen proberen om C++ te gebruiken, dan heb je misschien iets aan deze links:http://www.codeproje...rom-C-Using-JNI,http://en.wikipedia....ative_Interface
Het is mij dus niet duidelijk hoe ik die piek moet interpreteren, want zo te zien is het niet geen piek, maar een plotselinge stap naar 100% die niet meer omlaag gaat. Ik snap sowieso niet wat het percentage betekent.Xenion schreef: ↑wo 19 dec 2012, 15:32
Die ene piek van 100% GC time zou geen probleem mogen zijn. Die milliseconde zal je wel niet merken. Het is enkel problematisch als de GC vaak en lang actief zou zijn, maar dat blijkt dus niet zo te zijn.
Heb mijn heap op 2GB gezet. Mijn computer heeft 8GB aan geheugen.Xenion schreef: ↑wo 19 dec 2012, 15:32
Volgens mij ligt het echt gewoon aan het geheugen gebruik. Is de heap nu zo groot mogelijk ingesteld?
Zoals 317070 al zei ga je als je veel geheugen gebruikt sowieso vertragingen krijgen.
Nee, ik heb echt de hele boom nodig. Het is een soort A* -achtig algoritme. Het gaat me een beetje ver om mijn algoritme helemaal uit te gaan leggen hier, maar mochten mensen het interessant vinden, dan kun je op mijn website een paar artikelen hierover vinden:Xenion schreef: ↑wo 19 dec 2012, 15:32
Hebben je nodes geen ID ofzo? Dan kan je misschien het gevolgde pad tot een node bijhouden in de node zelf ipv de hele boom in het geheugen te houden.
Volgens je screenshots gebruikt je programma 1800MB aan geheugen: dan gaat je GC inderdaad veel tijd innemen. Hij heeft dan minder dan 10% om mee te spelen, dat is veel te weinig...Heb mijn heap op 2GB gezet.
Is het niet eerder dat gewoon eventjes veel tijd aan GC besteed wordt en dat hij dan weer naar 0 gaat? Hoe kan hij 1,6GB aan data creëren als je programma alleen GC doet?Hier nogmaals een screenshot, ditmaal heb ik de schaalverdeling van de y-as van de Garbage Collection Time grafiek op "percentage" gezet. Zoals te zien schiet hij in één keer naar 100%.