ClassMexer

Een eenvoudige instrumentatiemiddel die aan een Java-programma kan worden toegewezen en kan dat programma het geheugengebruik van objecten opvragen
Download nu

ClassMexer Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Freeware
  • Prijs:
  • FREE
  • Naam uitgever:
  • Neil Coffey
  • Uitgever website:
  • http://www.javamex.com

ClassMexer Tags


ClassMexer Beschrijving

Een eenvoudig instrumentatiemiddel dat aan een Java-programma kan worden gehecht en kan dat programma het geheugengebruik van objecten opvragen ClassMexer is een eenvoudig Java-instrumentatiemiddel dat een aantal gemak biedt om het geheugengebruik van Java-objecten uit een applicatie te meten. Het project biedt momenteel de volgende statische oproepen van de MemoryUTIL-klasse, in het Com.Javamex.classmexer-pakket: openbaar Statisch Long MemoreumuseOf (Object OBJ) Publieke Statische Lange DeepMemoryUSEAGEOF (Object OBJ) Publieke Statische Lange DeepMemoryUSAIk (Object OBJ, VisibilityFilter ReferenceFilter) Public Statische Lange DeepMemoreusAnageOfall (Collection Objs) Public Static Long DeepMememoreusAsOfall (Collection OBJS, VisibilerFilter ReferentionFilter) Installeren van ClassMexer in uw project om uw project in te stellen om ClassMexer te gebruiken: * Inclusief ClassMexer.jar Uw project, of zorg ervoor dat u deze opneemt in het klassenpad als u zich op de opdrachtregel opstelt; * voor hardlopen: Voeg -Javagent: ClassMexer.jar aan het Java-commando dat wordt gebruikt om uw toepassing te starten bevindt zich in de werkmap (de map waarvan u de aanvraag start - niet noodzakelijkerwijs hetzelfde als het klassenpad). In uw broncode moet u de klasse Com.javamex.classmexer.memoryutil importeren. Hoe wordt geheugennummer de eenvoudigste oproep die door de MemoryUTil-klasse wordt gewijzigd, retourneert het aantal bytes dat door een object wordt bezet, niet inbegrepen. import com.javamex.classmexer.memoryutil; ... Lange Nobytes = Memoryutil.MemoryUsageOF (SomeObject); deze methode is in wezen een wikkel rond de JDK-methode-instrumentatie.getobjectsize (). Als zodanig geeft het niet altijd een zeer relevant resultaat. Meestal is het interessanter om het "diepe" geheugengebruik van een object te vragen, dat "subobjecten" omvat (objecten waarnaar wordt verwezen door een bepaald object). Als we bijvoorbeeld proberen het geheugengebruik van een tekenreeks te vragen met geheugen (), zullen we niet daadwerkelijk de karakters van de string, omdat ze worden opgeslagen in een charreeks (een afzonderlijk object) waarnaar wordt verwezen door de string Object zelf.De DeepMemoreusAnageOF () oproepen zijn ontworpen om dit probleem om te gaan. Ze omvatten recursief "subobjecten" of objecten waarnaar wordt verwezen door het "hoofd" -object (en) doorgegeven. Dus om het totale geheugengebruik van een string te krijgen, kunnen we gebruiken: string str = "een string of een andere"; lange nobytes = MEMORYUTIL.DEEPMEMORYUSEAGEOF (STR); Standaard treedt de DEUPMEMORYUSAGEOF () methode niet-openbare referenties (dwz objecten met een privé, beschermde of pakket-privé-referentie). Voor veel objecten zoals snaren is dit het juiste type referentie om te volgen: in feite bevatten we alleen die objecten die in zekere zin "behoren" tot het hoofdobject (hoewel het criterium niet perfect is: een object kan nog steeds niet perfect zijn een particuliere verwijzing naar een "mondiaal" object). We kunnen veranderen welke referenties worden doorlopen door een optionele visibiliteitFilter te passeren: import com.javamex.classmexer.memoryutil; import com.javamex.classmexer.memoryutil.visilterfilter; .. Lange Nobytes = MemoryUtil.DeepMemoryUsAldOf (Sommigen); In dit voorbeeld worden alle referenties doorkruist in het tellen van het geheugengebruik van het object. Andere opties die momenteel worden ondersteund zijn geen en private_only.Total geheugengebruik van meerdere objectenDe DeepMemoreusSageOfall () methoden nemen een verzameling objecten en tellen het totale geheugengebruik aan van alle objecten in de meegeleverde collectie. Als er geen visibiliteit wordt verstrekt, is de standaardinstelling Non_Public zoals hierboven. Deze methoden zorgen ervoor dat geen enkel object meer dan eens wordt geteld, zelfs als objecten meerdere referenties hebben. (De oproepen van één object maken deze garantie ook, omdat het natuurlijk mogelijk is voor het objectgrafiek dat begint met een enkel object om uiteindelijk meerdere verwijzingen naar hetzelfde object te omvatten.) Vereisten: · Java 2 Standaard Edition Runtime-omgeving


ClassMexer Gerelateerde software

pylons_gae

Geen vervanging voor APPENGINE-aap, maar gewoon een snelle integratie van pylonen op APPENGINE ...

53

Downloaden

cifit

Lichtgewicht configuratiebeheer Toolkit die u in Python schrijft ...

141

Downloaden