YourKit Java Profiler er en kommersiell CPU og minne profiler programvare som lar brukerne enkelt løse bredt spekter av CPU og minne relaterte ytelsesproblemer.
YourKit Java Profiler har automatisk lekkasjedeteksjon, kraftige verktøy for analyse av minne distribusjon, et objekt haug nettleser, omfattende hukommelsestester som en del av JUnit testing prosess, ekstremt lav profilering overhead.
Hva er nytt i denne versjonen:
- Agent: Windows versjon deteksjon forbedret. Spesielt er Windows 10 nå riktig oppdaget, og oppsummeringen viser Windows-versjonen med build-nummeret.
- IDE integrering: feilen fikset: NetBeans plugin kan ikke installeres på Windows 10
- CPU profilering: CPU tracing resultat korreksjon brukes nå bare hvis -Dyjp.apply.calibration = sant er spesifisert i /bin/ui.ini
- Minne profilering: optimalisering: forbedret lasting tid på minne snapshots (særlig & quot; oppgave 3 & quot; pågår)
- Minne profilering: optimalisering: Object explorer og andre visninger åpen raskere for noen objektsett
- Minne profilering: feilen fikset: minnelekkasje av midlertidige datastrukturer opprettet under snapshot loading
Hva er nytt i versjon 2013 Build 13072:
- UI: feilen fikset: sporadisk & quot; java. lang.ClassCastException & quot;
- UI: vranglås detektor: feilen fikset: mulig & quot; vranglås detektor problem: status mismatch & quot; unntak for noen innspill
- Agent: feilen fikset: IBM Java: & quot; java.lang.UnsatisfiedLinkError & quot; for native metoder i com.ibm.oti.vm.VM
Hva er nytt i versjon 2013 Build 13070:
- Agent: Linux: feilen fikset: feil session navn ble valgt i tilfelle svært lang kommandolinje, f.eks «java» i stedet for den største klassen eller JAR navn
- Agent: feilen fikset: oppstartsalternativene probe_on, probe_off, probe_auto, probe_disable godtok ikke den korte syntaks for innebygde sonder, f.eks .Databases For com.yourkit.probes.builtin.Databases
- Agent: sonder, ytelse tellere: bug fast: Fileoutputstream og prosess I / O hendelser ikke ble registrert i noen Java-versjoner
- IDE integrasjon: NetBeans 8.0 Beta støttet
- IDE integrasjon: Mac OS X: feilen fikset: profiler UI ville ikke automatisk koble seg til den profilerte prosessen på grunn av Java 7 JavaAppLauncher manglende evne til å formidle sine kommandolinjeparametre til java kjørbar
Hva er nytt i versjon 2013 Build 13066:
- CPU Profilering:
- Snapshot sammenligning: forbedring: slave utsikt & quot; Tilbake spor & quot ;, & quot; Callees liste & quot; og & quot; Sammenslåtte Callees & quot; har blitt lagt til en metode som er valgt i & quot; Method liste & quot ;. De er spesielt nyttig når analysere en metode som kalles fra forskjellige steder i øyeblikksbilder som sammenlignes.
- J2EE høyt nivå profilering er nå basert på innebygde probe resultater.
- Dette eliminerer overhead av tidligere brukte dedikerte callbacks, som delvis gjentatt den innebygde probe funksjonalitet, samt utført noen operasjoner i runtime stedet for å utføre dem når profiler åpner et øyeblikksbilde.
- Det finnes Eiendommen high_level_cpu_profiling ikke lenger i CPU prøvetaking eller tracing innstillinger. Oppstartsalternativ disablej2ee er fjernet. Slik slår J2EE høyt nivå profilering av, bør du slå av eller deaktivere tilsvarende prober.
- CPU tracing: en ny oppstart opsjons _instrument_all_methods er lagt til instrument primitive getters, settere og andre lignende korte metoder som kun tilgang objekt felt og / eller returnerer en verdi. Som standard er slike metoder ikke instrumentert for å redusere overhead. Bruk dette alternativet når anrops teller for alle kalt metoder er mer verdifull enn den tiden nøyaktighet og lavere overhead.
- UI: ekstra muligheten til å vise metoder som tok mindre enn 1 ms ved å angi -Dyjp.show.shortest.methods = sant i /bin/yjp.ini
- Optimization: Hot Spots Visningen åpnes mye raskere
- UI: ekstra muligheten til å deaktivere null-tid metoden korreksjon ved hjelp av eiendommen -Dyjp.zero.time.methods = false i /bin/yjp.ini. Null-time korreksjon betyr at eventuelle samtaler til følgende metoder blir ignorert:
- java.lang.Object: vent (*)
- java.lang.Thread: sleep (*)
- java.lang.Thread: yield (*)
- java.net.PlainSocketImpl: socketAccept (*)
- java.net.PlainSocketImpl: godtar (*)
- java.net.ServerSocket: akseptere ()
- org.apache.tomcat.jni.Socket: godtar (*)
- sun.nio.ch.ServerSocketChannelImpl: accept0 (*)
- sun.misc.Unsafe: park (*)
- java.util.concurrent.locks.LockSupport: park * (*)
- com.ibm.tools.attach.javaSE.IPC: waitSemaphore (*)
- sun.nio.ch.EPollArrayWrapper: epollWait (*)
- Teknisk, deres tid er trukket fra den som ringer tid opp til samtalen trerot når CPU profilerings Resultatene er lagt i UI. Med andre ord, er deres tid alltid antatt å være 0 når korreksjonen blir anvendt.
- Minne Profilering:
- Object Explorer: verdier blir umiddelbart vist for objekter av følgende klasser:
- java.util.Date
- java.net.URL
- java.io.File
- java.util.zip.ZipFile
- java.util.jar.JarFile
- primitiv verdi pakkere:
- java.lang.Integer
- java.lang.Long
- java.lang.Short
- java.lang.Boolean
- java.lang.Byte
- java.lang.Character
- java.lang.Double
- java.lang.Float
- atom verdier:
- java.util.concurrent.atomic.AtomicInteger
- java.util.concurrent.atomic.AtomicLong
- java.util.concurrent.atomic.AtomicBoolean
- andre tall klasser:
- java.math.BigDecimal
- java.math.BigInteger
- refleksjon:
- java.lang.reflect.Field
- java.lang.reflect.Constructor
- java.lang.reflect.Method
- (siden bygge 13062) samling størrelse for innsamling klasser og deres underklasser:
- java.util.ArrayList
- java.util.Arrays $ Arraylist (tilbake fra Arrays.asList ())
- java.util.HashMap
- java.util.HashSet
- java.util.Hashtable
- java.util.IdentityHashMap
- java.util.LinkedList
- java.util.PriorityQueue
- java.util.TreeMap
- java.util.Vector
- java.util.WeakHashMap
- Objekt explorer: selv registrere objekter er uttrykkelig angitt med [Selv referanse], og tilsvarende tre noder er blader nå for å unngå uendelig ekspansjon
- Objekt explorer: ekstra muligheten til å tilpasse det maksimale antall vist individuelle objekter ved hjelp av eiendommen -Dyjp.max.objects.to.show = i /bin/yjp.ini. Standardverdien er fortsatt 500. Merk:. Sette større verdier øker minnebruk og kan forsinke UI
- Primitive matriser med alle de samme elementene er eksplisitt angitt i objekt explorer, stier og andre visninger presentere enkeltobjekter
- Analyse av matriser med et stort antall elementer har blitt forenklet ved hjelp av den nye handlingen Memory | Vis Array Elements (Shift + F5) (også tilgjengelig via en popup-meny) som åpner alle elementer av valgt referanse array (e) i en ny fane, hvor de kan være omfattende undersøkt med alle tilgjengelige utsikt.
- Denne handlingen er også tilgjengelig som & quot; Åpne alle elementer i en ny fane & quot; hyperkobling i objektet explorer i tillegg til & quot; Konfigurer vist gruppeelementutbyttende utvalg ... & quot; hyperkobling tilgjengelig for matriser med skjulte elementer.
- sammenslåtte stier: forbedring: separate noder brukes for GC røtter og gjenstander beholdt fra flere objekter
- sammenslåtte stier: forbedring: & quot;
Hva er nytt i versjon 12.0.5:
- Agenten loggfil kunne ikke opprettes hvis session navn inneholdt ugyldige tegn i filnavn.
Hva er nytt i versjon 12.0.4:
- Denne versjonen fikser samplet tildeling opptak, som kan krasje den profilerte programmet hvis CPU prøvetaking aldri hadde blitt startet.
- Den medfølgende JRE er blitt oppgradert til Java 7.
Hva er nytt i versjon 12.0.3:
- Støtte for FreeBSD 8 har forbedret
- Lasting av bilder med en stor mengde av GC er sterkt optimalisert.
- Denne utgivelsen løser noen problemer med JBoss, Glassfish, og OSGi Felix.
Hva er nytt i versjon 12.0.1:
- nye plattformer som støttes:
- Linux på ARM: kjører profilerte programmer og / eller profiler UI støttes på soft-float (ARMv5, ARMv7) og hard-float (ARMv7) JVM
- Linux på PPC: kjører profilerte programmer og / eller profiler UI støttes på 32-bit (PPC) og 64-bit (ppc64) JVM
- CPU Profilering:
- CPU tracing overhead har blitt betydelig redusert (forskjellige profilerte programmer kjører opp til 10% -50% raskere enn med forrige profiler versjon) og nøyaktighet er økt på grunn av følgende forbedringer:
- nye adaptive tracing modus reduserer automatisk sporing overhead og gjør resultatene mer tilstrekkelig (se CPU-tracing innstillinger)
- CPU tracing måler nå veggen tid som standard (se CPU tracing innstillinger og tidsmåling).
- Dette reduserer profilering overhead fordi skaffe vegg tid er raskere enn å skaffe CPU tid.
- Wall tid er også mer presis enn CPU-tid, og gir noen nanosekund nøyaktighet ved måling av tidsintervaller.
- interne forbedringer redusert profilering overhead
- All CPU profilering innstillingene som brukes i runtime er konfigurert i CPU utvalgsinnstillingene og CPU-sporing innstillinger
- Vær oppmerksom på de relaterte endringer:
- API: to nye Controller metoder har blitt lagt til: startCPUTracing (Nullable String innstillinger) og startCPUSampling (Nullable String innstillinger). Metoder startCPUProfiling (...) har blitt frarådet.
- J2EE høyt nivå profilering er nå konfigurert i CPU utvalgsinnstillingene og CPU-sporing innstillinger
- oppstartsalternativ noj2ee er fjernet til fordel for high_level_cpu_profiling eiendom i CPU utvalgsinnstillingene og CPU-sporing innstillinger
- oppstartsalternativer samplingperiod og samplingdelta har blitt fjernet til fordel for de sampling_period_ms og sampling_period_delta_ms eiendommer i innstillingene CPU prøvetaking
- tidsmåling er nå konfigurert i CPU utvalgsinnstillingene og CPU-tracing innstillinger. En egen konfigurasjonsfil .walltime og en dedikert oppstartsalternativ walltimespec brukes ikke lenger.
- oppstartsalternativ filtre er fjernet til fordel for CPU tracing innstillinger
- CPU tracing: wall tids metoder er ikke lenger implisitt behandlet som alltid ikke-filtrert. Den forrige atferd kan skape uventede overhead hvis veggen tidsmåling ble konfigurert for mange eller alle metoder.
- Agent: tidsmåling har blitt forbedret for å sikre monotoni når det passer
- CPU sampling: feilen fikset: innfødte metode pakkere $$ YJP $$ kan vises i stabler
- Minne Profilering:
- UI: ny funksjon: Klasse trevisning ligner til & quot; Class liste & quot ;, men viser klassene gruppert etter pakken
- UI: Ny funksjon: minnevisningene som Class liste tillate utvalg av flere rader. Dette påvirker slave visninger innhold, samt tiltak som & quot; Vis valgte objekter & quot; og andre.
- & quot; Duplicate strenger & quot; inspeksjon: resultatene er vist under en ny gruppering root node som presenterer den totale avfalls i alle de dupliserte strenger
- Optimization: snapshots med store primitive arrays er åpnet raskere
- UI: optimalisering: ytelse av & quot; Innkommende Referanser & quot; synet har blitt dramatisk forbedret
- UI: forbedret beregning av eksakt beholdt størrelse i & quot; Class liste & quot; og lignende visninger: flere elementer behandles per klikk dersom beregningshastigheten tillater
- UI: forbedring: tilgjengelige CPU-kjerner brukes for parallelle beregninger i følgende visninger:
- Class liste
- Class treet
- Generations
- reachability scopes
- Klasse Gravere
- webapplikasjoner
- Objekt aldre
- UI: forbedring: & quot; beregne eksakt beholdt størrelser & quot; handling bruker tilgjengelige CPU-kjerner for å utføre beregningen parallelt
- UI: forbedring: & quot; beregne eksakt beholdt størrelser & quot; handling tvinger ikke sortering av beholdt størrelsen kolonnen dersom beregningen fortsetter
- Optimization: opptak tildeling overhead har blitt redusert for flertrådede programmer. Hvor stor forbedring er avhengig av & quot; Record hver N-te objekt & quot; innstilling. Ifølge tester, kode blir profilert løper opp til 30% raskere når hver 10. objekt registreres (standardinnstillingen), og opptil 70% raskere når hver 100-objekt er registrert, sammenlignet med den forrige versjonen
- webapplikasjoner: forbedring: webapplikasjon kontekstbanen (URL) vises nå i tillegg til web-applikasjon navn
- webapplikasjoner: lagt til støtte for Jetty (versjon 6, 7, 8)
- Class eksempel telle telemetri (& quot; Class List & quot; fanen), i motsetning til andre visninger telemetri, ikke automatisk med jevne mellomrom oppdatere. Dette er for ytelseshensyn. Kan ta betydelig tid i tilfelle av store hauger med mange objekter å samle statistikken, og dermed bør kjøre på etterspørselen
- I stedet oppdaterer den da:
- & quot; Refresh & quot; knappen trykkes når kategorien er synlig (en eksplisitt oppdatering)
- & quot; Force Garbage Collector & quot; knappen trykkes når kategorien er synlig (det er fornuftig å umiddelbart se endringene i objekt teller og størrelser etter å tvinge garbage collection)
- a snapshot fanges (samle statistikken er en del av fangst)
- UI: Paths: bug fast: duplisere bane oppføringer kan bli vist under visse omstendigheter
- Telemetri:
- CPU-bruk telemetri. kernel CPU tiden vises som en egen kurve, i tillegg til hovedbruker + kjernen CPU-tid graf
- AIX notat: vi vet to funksjoner for å måle prosess CPU tid på AIX: clock_gettime (CLOCK_PROCESS_CPUTIME_ID) og rusage (). Den første brukes som standard fordi det ser ut til å gi bedre resultater enn sin motpart. Men det har en ulempe: det gir ikke kernel og bruker ganger separat. Dette betyr at du vil ikke se kjernen tid telemetri. For å aktivere den, velg agenten oppstartsalternativ _with_rusage å bruke rusage () i stedet.
- Graph gjengivelse er blitt optimalisert, noe som gjør UI mye mer responsive, spesielt når du bruker større skalaer
- Tråd tilstand telemetri: feilen fikset: telemetri prøver kan skje til lavere rente fører til hull i tråden staten telemetri graf
- Prober:
- Ny funksjon: Muligheten til å fjerne tabeller. Bli kvitt eldre hendelser du ikke er interessert i lenger, eller gi plass til nye hendelser hvis grense bordet kapasiteten er nådd.
- For å fjerne tabellen fra UI, bruk & quot; Clear tabell (s) ... & quot; linken ligger i øvre høyre hjørne av & quot; prober & quot; fanen.
- For å fjerne tabeller programmatisk, bruke profiler API metoden Controller.clearUserTables (String ... tableNames)
- UI: & quot; prober & quot; Kategorien layout er endret til gir mer vertikal plass for surfing hendelseslister, og gjøre brukergrensesnittet mer konsekvent. Nå faner tabeller, tidslinje, event samtale treet og CPU-bruk estimerings ligger på samme nivå.
- Klasse lasting sonde kan aktiveres med oppstartsalternativ probe = classloading (standard) og funksjonshemmede med oppstartsalternativ noprobe = classloading. Oppstartsalternativ builtinprobes = ingen tilsier nå noprobe = classloading.
- Prober: API: frarådet klasse com.yourkit.probes.ObjectIntWeakMap har blitt fjernet. Bruk com.yourkit.probes.ObjectRowIndexMap i stedet.
- & quot; Tråd Life Cycle & quot; innebygd probe: feilen fikset: navn endringsaktiviteter ble feilaktig forbundet i noen JVM innvendige gjenger
- Triggere:
- standard utløser beskrivelse filen har blitt endret til /.yjp/triggers.txt
- IDE Integrasjon:
- Eclipse, IntelliJ IDEA, NetBeans 7.0 og nyere plugin oppdager 32-bits og 64-bits JVM automatisk.
- & quot; Profil & quot; Handlingen må vite om JVM for å lansere den profilerte programmet er 32-bit eller 64-bit, for å levere hensiktsmessig middel versjon.
- Tidligere plugin fullt støttet seg på brukerens valg i & quot; 32-bit eller 64-bit JRE Selection & quot; Kategorien av plugin-konfigurasjon. En feil valg resulterte i JVM svikt oppsto en feil under initialisering av VM. Kunne ikke finne middel biblioteket.
- Nå blir det gjort et forsøk på å automatisk oppdage JVM slag ved å innhente tilgjengelig informasjon fra IDE. Dersom påvisning lykkes, overstyrer resultatet brukerskapte valg.
- Dette gjør & quot; Profil & quot; handling arbeid ut av boksen i de fleste tilfeller.
- Merk: vi beholdt den & quot; 32-bit eller 64-bit JRE Selection & quot; Kategorien som en backup for de tilfeller der automatisk registrering er umulig.
- Eclipse: Maven kjøre konfigurasjoner støttes i Eclipse 3.7 og nyere
- IntelliJ IDEA 12 støttet
- NetBeans 7.3 støttes
- NetBeans: feilen fikset: profilering enkelt klasse eller JUnit test kanskje ikke fungere i Web prosjekter
- J2EE integrasjon:
- J2EE integrasjon veiviser: lagt Jetty 6 og nyere støtte
- User Interface
- Forbedring: venstre vertikale fanegruppe som representerer åpnet snapshots og tilkoblede programmer nå prøver å unngå den scroller hvis mange faner åpnes, ved å forkorte kategorien titler. Hvis hele kategorien tittelen ikke passer, er det fortsatt vil være tilgjengelig via et verktøytips.
- Filter: lagt til en rask måte å bytte mellom søker og ikke bruke filtre i UI:
- med en ny hoved menypunktet Innstillinger | Kollaps Filtrert Calls
- verktøylinjen når profiler er koblet til et aktivt program
- & quot; Filters ... & quot; hyperkobling i Legend når du arbeider med et øyeblikksbilde
- Skalerbarhet: å gjøre UI mer responsiv når du arbeider med store snapshots, & quot; Callees liste & quot; slave visning beregnes ikke automatisk så snart valget i endringene hovedtabell. I stedet bør beregningen være eksplisitt startes ved å klikke på en kobling. Som standard er automatisk beregning utført for øyeblikksbilder med mindre enn 1.000.000 samtale rammer (dvs. unike stabler), som dekker den største majoriteten av den virkelige verden snapshots. For å endre terskelen, angi -Dyjp.callees.auto.threshold = antall rammer i /bin/yjp.ini.
- Lagt til støtte for høy kontrast farger. Å bruke den, vennligst oppgi -Dyjp.system.colors = true i /bin/yjp.ini.
- yjp.sh oppstartsskript forbedret: hvis YJP_JAVA_HOME miljø variabel angis det har klosteret løpet buntet JRE og systemet standard Java, noe som gir en mulighet til å kjøre profiler UI under spesiell Java-versjon uten å redigere oppstartsskript
- Sammendrag: lagt & quot; Kommandolinje & quot; eiendom for å representere hele kommandolinjen av Java prosessen
- Call treet og bak spor visninger: lagt popup menyvalget for å utvide valgt node ned til 5 nivåer, som et supplement til det eksisterende elementet som utvider noden fullt
- Forbedring: dialog stil forenes med hensyn til hjelp og ikke-avsluttknappen plassering
- Bug fast: profilvinduet kan bli usynlig etter profiler restart hvis en av tidligere brukte skjermer var ikke lenger tilgjengelig
- Bug fast: stack overflow unntak under visse sjeldne tilfeller
- Bug fast: filveljarknappen påberopes fra Open Snapshot dialog feil håndtert Enter-tasten, når du kjører UI på Java 7
- Diverse:
- Export med kommandolinje: class listen er eksportert for ytelses snapshots også (som sett i kategorien Memory | Class liste)
- Påminnelse: snapshot katalogen konfigurasjonsfilen er nå /.yjp/snapshotdir.txt
- Windows Installer: profiler er nå sammen med Java 7 JRE. Merk:. Java 6 er fortsatt et fullt støttet plattform
- Agent: log filnavnet er nå -.log å bedre separate logger fra ulike programmer
- Agent. lagt et alternativ til å lagre logger fra flere kjøringer av samme program i en serie av loggfiler navngitte ..Logg stedet for å lage en individuell loggfil -.log for hver profilert prosess
- Denne modusen kan være nyttig når profilering applikasjoner som servere, når du har en forent logg bedre enn å ha en egen logg for hver server start.
- Hvis du vil bruke denne modusen, må du angi oppstartsalternativ united_log
- Session er navnet på programmet som sett i profiler UI, og som også brukes som standard for å nevne snapshots programmets. Det blir automatisk valgt for spesiell anvendelse basere på sin krukke filnavnet, eller dets viktigste klassen navn eller tilpasset kjørbar navn, eller på konfigurasjonsnavnet løp når profilering innenfra IDE. Økten Navnet kan også være eksplisitt spesifisert med oppstartsalternativ sessionname =
- Løpenummer starter med 1. Hvis den første loggfilen .1.log overskrider størrelsesgrensen, en ny loggfil .2.log vil bli opprettet og brukt, så .3.log etc. Grensen størrelse er 1 MB som standard, og kan endres med oppstartsalternativ log_file_size_limit =
- Merk: de eldste loggfiler ikke automatisk fjernet. Hvis du trenger å rengjøre dem opp, gjør det manuelt eller skrive et manus.
- Agent: Groovy 2.0 støttes
- Agent: CPU sporing og tildeling omkoding overhead litt redusert på IBM Java
- Agent: feilen fikset: feste mode: feil unntak handler i konstruktør under visse omstendigheter
- Agent: feilen fikset: mulig java.lang.VerifyError: Inkonsekvent stackmap rammer på grenen mål for spesielle kodemønstre kompilert med Eclipse kompilatoren
- UI: ekstern profilering: feilen fikset: fjern profilerte programmer som kjører på forskjellige maskiner, konfigurert til å bruke samme port og begynte samtidig kan ikke samtidig koblet i profiler UI
Hva er nye i versjon 10.0:
- Denne nye store utgivelsen inneholder en rekke nye funksjoner, forbedringer og feilrettinger. Støtte for AIX (PPC og ppc64) plattformen ble lagt.
- En ny & quot; triggere & quot; funksjonen lar brukerne automatisk utføre forskjellige handlinger på bestemte hendelser (høy CPU eller minnebruk, utførelse av metoden, osv.).
- Tildeling opptak kan samle søppel samler statistikk per klasse.
- Ytelses snapshots kan hentes ut fra minne snapshots.
- Kalibrering nøyaktigheten av CPU sporing ble forbedret.
- CPU-bruk og tidsbruk i søppelsamler vises nå på samme grafen.
- Som vanlig, mange forbedringer i brukergrensesnittet ble iverksatt.
Hva er nytt i versjon 9.5.1:
- Forbedring: flere OSGi beholdere kan profilert uten behovet for å twick OSGi innstillingene manuelt for å tillate lasting av profiler klasser. Spesielt dette inkluderer Glassfish 3.1.
- IDE integrering: forbedret NetBeans plugin installasjon på Windows Vista og Windows 7. Tidligere kanskje IDE integrasjon veiviseren mislykkes hvis NetBeans ble installert i en beskyttet katalog som & quot; Program Files & quot; på grunn av Windows sin User Access Control (UAC). Nå er hensiktsmessig UAC-melding vises når det er nødvendig, la veiviseren lykkes.
- IDE integrasjon: NetBeans 7.0 M2 støttet
- IDE integrering: profiler plugin UI: forbedringer
- UI: velkomstskjermen: forbedret brukervennlighet på lav oppløsning skjermer
- UI: åpen dialog snapshot: gruppering snapshots av økten er nå valgfritt
- Bug fast: UI: åpen dialog snapshot kanskje feilaktig oppdatere under visse sjeldne tilfeller
Begrensninger
- 15-dagers evaluerings
Kommentarer ikke funnet