Ik heb oa een debugger bij Codeguide en bij IDEA, dus daaraan geen gebrek. Ik vind ze alleen geen toegevoegde waarde hebben boven een system.out.
En voordat het een flame gaat worden over debuggers, afgezien van de outofmemory error heb ik mijn bugs vrij snel te pakken (unit testen helpt ook goed om de meeste bugs erg vroeg te pakken).
Daarnaast, om code te profilen of geheugen gebruik omlaag te krijgen gebruik ik sinds een aantal weken JProfile. In de eerste dag van gebruik heb ik in twee uur tijd 60% van de processing tijd van een verwerkingsprocedure afgesloopt. Iets wat zonder profiler absoluut onmogelijk is. Verder blijft bij een OOME de JVM door de profiler in leven en kan je naar alle geinstantieerde objecten kijken en laten berekenen hoe hun pad naar de JVM loopt. Oftwel, je kunt zien waarom al die 100.000en Strings niet geGC'd zijn en jouw JVM om zeep hebben geholpen.
Kortom: het wordt tijd om naar de moderne tijd te gaan qua ontwikkeltools... Eclipse is gratis, JProfile kun je 30 dagen op proef krijgen. Maar er zijn ook anderen (o.a. JProbe), maar daar heb ik geen ervaring mee.
Ik heb vroeger wel eens gewerkt met JProbe en JProfiler, maar ik vind dat nogal een heavy duty oplossing om een outofmemory error op te sporen (bij een recursieve aanroep). Ik vind het jammer dat de stacktrace (die beschikbaar is) niet afgedrukt wordt. Misschien dat hiervoor te weinig resources beschikbaar zijn, maar er moet vast wel een oplossing voor te vinden zijn.
Als je idd moet profilen dan zijn tools zoals JProbe en JProfiler wel onmisbaar natuurlijk, maar ik betwijfel of ze bij de outofmemory error ook een oplossing geven.
[edit]
Je kan natuurlijk ook outofmemory error hebben omdat je bv een memleak hebt. Idd kan een tools zoals JProbe daarbij enorm helpen. Maar mijn voornaamste probleem is eigelijk een recursieve aanroep (heb het wel eens gehad bij het sterker typeren (covariant return type) van een methode.
[
Voor 8% gewijzigd door
Alarmnummer op 05-11-2003 14:22
]