Profilera en tillämpning i fristående läge
Du kan profilera en tillämpning i fristående läge (alltså från kommandoraden) utan att ha test- och prestandaverktygsplattformen installerad. Däremot behöver du ha agentkontrollanten installerad på den dator där den tillämpning som ska profileras finns.
Du kan profilera en tillämpning i fristående läge genom att anropa Java-profileringsagenten, ett bibliotek som ansluter till en Java Virtual Machine (JVM) för att registrera beteendet hos Java-tillämpningen. Utdata från agenten presenteras i form av XML-fragment.
Använd Java-kommandot -Xrun när du vill anropa Java-profileringsagenten:
-XrunpiAgent:agent_parm[,agent_parm]*
Om du till exempel vill profilera PerformanceExample.java med hjälp av filter som är definierade i filen myFilters.txt och dirigera data från profileringsessionen till en fil med namnet PEProfilingData skriver du följande på kommandoraden:
java -XrunpiAgent:server=standalone,filters=myFilters.txt,file=PEProfilingData.trcxml
PerformanceExample
- Obs! Om du vill starta WebSphere
Application Server Version 6 (WAS) i profileringsläge från kommandoraden måste du utföra följande steg:
- Gå till <profile root>/config/cells/<nodename>Cell/nodes/<nodename>/servers/server1
- Redigera elementet jvmEntries i server.xml-filen. I det elementet finns ett attribut med namnet genericJvmArguments. Lägg till
-XrunpiAgent:server=enabled till attributvärdet.
- Starta om WAS.
-
- Om du utökar -XrunpiAgent-parametern kan du specificera flera olika lägen att köra profileringsagenten i. Parametern agent_parm kan ha något av följande värden:
- server=[standalone | enabled | controlled | application]
- standalone
- Profileringsagenten körs i fristående läge, vilket betyder att interaktion via arbetsmiljön inte är möjlig. Konfigureringsinformation tillhandahålls med hjälp av konfigurationsfiler och profileringsdata som är lagrade i en fil direkt vid profileringsagenten. Profileringsfilen kan sedan importeras till arbetsmiljön vid ett senare tillfälle.
- Java-profileringsagenten ansluts manuellt till en JVM-instans och genererar profileringsdata till en utdatafil. Standardutdatafilen kallas trace.trcxml, men du kan ange ett annat filnamn med hjälp av parametern file= filename . När det här alternativet är valt skapar Java-profileringsagenten ett bifogat traceRoot-element som hjälper till att utforma ett komplett och giltigt XML-dokument.
- enabled (Det här är standardalternativet.)
- Profileringsagenten körs i bakgrunden på JVM:en utan att ta resurser i anspråk tills du ansluter till den via arbetsmiljön och startar övervakningen. Data strömmas då över till agentens datakanal och används av arbetsmiljön.
Det betyder att Java-profileringsagenten startas och låter tillämpningen köras som vanligt, men inga profileringsdata skapas förrän en klient ansluter till agenten för att ge den instruktioner. När alternativet är valt producerar Java-profileringsagenten bara XML-fragment i stället för ett fullständigt XML-dokument.
- controlled
- Profileringsagenten upptingar JVM:en från start (agenten hämtas, men hindrar tillämpningen från att köras) tills den får en anslutning från arbetsmiljön och får instruktioner från en klient att starta övervakningen.
Det betyder att när profileringsagenten startas i ett kontrollerat läge ser det ut som om den hänger JVM:en tills den blir ombedd att starta övervakningen, och den producerar bara XML-fragment i stället för ett fullständigt XML-dokument.
- application
- Java-profileringsagenten startas, körs i bakgrunden och tillåter att tillämpningen körs normalt, som i aktiverat läge.
- Den producerar endast profileringsdata när de två villkoren är uppfyllda.
För det första måste tillämpningen ha begärt att profileringsagenten ska starta profileringen med hjälp av org.eclipse.hyades.collection.profiler.Profiler och för det andra måste testklienten i arbetsmiljön vara ansluten till Java-profileringsagenten och ha startat övervakningen.
- Obs! All profilering kontrolleras av tillämpning med hjälp av klassen org.eclipse.hyades.collection.profiler.Profiler.
- profile=profile file
Det här alternativet kan endast tillämpas när server=standalone. Den här filen anger de alternativ som du vill att profileringen ska köras i fristående läge. De alternativ som anges i den här filen ställs vanligtvis in i profileringskonfigurationsfönstret när användaren startar en Java-process från arbetsmiljön. Med den här filen får du ett likvärdigt alternativ att ange alternativ när fristående läge körs.
Filen kan hämtas på två sätt.
En lista över giltiga alternativ för profileringsfilen finns i Fristående profilfilteralternativ.
- filters=filename
Används endast när server=standalone har specificerats.
Anger namnet på den fil som innehåller de klassfilterdefinitioner som används initialt i profileringsessionen. Standardfilnamnet är filters.txt i den aktuella katalogen. Mer information om filformatet finns nedan.
- file=filename
Används endast när server=standalone har specificerats.
Anger namnet på den fil som profileringsdata ska skrivas till. Standard är trace.trcxml i den aktuella katalogen.
- help
Visar en lista över tillgängliga agentalternativ för STDOUT.
Format på klassfilterfilen
Filterfilen bör specificera de tre fälten package/class, method och mode i följande format:
package/class method mode
där:
- package/class
- Det här fältet används till att ange ett mönster för ett paket- eller klassnamn.
Mönstret bör anges som en sträng utan inbäddade blanktecken. Strängen kan innehålla en asterisk (*) antingen i början av strängen eller direkt efter den, t.ex. *.mypackage eller org.mycompany.*. Asterisken* motsvarar noll eller fler tecken, och skapar på så sätt ett generiskt prefix- eller suffixmönster av mönstret. En ensam * kan också användas som representant för alla strängar.
- method
- Fältet används till att ange mönster för metodnamnet.
Mönstret bör anges som en sträng utan inbäddade blanktecken och med samma specifikationsregler som class-fältet.
- mode
- Det här fältet anger om det paket eller den klass som matchar mönstret ska inkluderas eller exkluderas i profileringen. Värdet för läget är antingen INKLUDERA eller EXKLUDERA.
Filtermönster bearbetas i den ordning de anges tills den första mönstermatchningen görs. Om klassnamnet inte matchar något av de angivna filtermönstren är standard att INKLUDERA klassen.
Java-profileringsagentkontroll
När Java-profileringsagenten startas med parametern server=enabled
eller server=controlled sköts kommunikationen med agenten med arbetsmiljön på klienten för agentkontrollanten på värddatorns räkning.
Tänk på
- Om du inte anger något filnamn som definierar filtret på kommandoraden försöker Java-profileringsagenten att läsa in filtren från filen med namnet filters.txt i den aktuella katalogen. Om filen filters.txt inte finns används inga filter under profileringssessionen. Om du ger din filterfil namnet filters.txt och lägger den i den aktuella katalogen behöver du inte ange någon filterparameter på kommandoraden som ska användas av profileringsagenten.
- Om du inte anger någon utdatafil för profileringsdata, sparas de i filen trace.trcxml
- Du behöver inte ange någon filändelse för utdatafilen. Den får automatiskt filtillägget .trcxml
- Du behöver inte ange filändelsen för Java-tillämpningen. Den kan vara en .class-fil.
Närliggande begrepp
Översikt över profileringsverktyget
Profilera resurser
Närliggande uppgifter
Profilera en tillämpning i fristående läge på AS/400
Starta och ansluta till en Java-process
Använda profileringsövervakningsvyn
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.