스냅샷 작업을 위한 명령줄 실행 파일
스냅샷을 프로그래밍 방식으로 저장하기 위해 오프라인 프로파일링을 사용할 때, 프로그래밍 방식으로 해당 스냅샷에서 데이터나 보고서를 추출해야 할 수도 있습니다. JProfiler는 스냅샷에서 뷰를 내보내기 위한 하나의 명령줄 실행 파일과 스냅샷을 비교하기 위한 또 다른 명령줄 실행 파일을 제공합니다.
스냅샷에서 뷰 내보내기
실행 파일 bin/jpexport
는 다양한 형식으로 뷰 데이터를 내보냅니다. -help
옵션과 함께
실행하면 사용 가능한 뷰 이름과 뷰 옵션에 대한 정보를 얻을 수 있습니다.
간결성을 위해 아래 출력에서는 중복된 도움말 텍스트가 생략되었습니다.
사용법: jpexport "스냅샷 파일" [글로벌 옵션] "뷰 이름" [옵션] "출력 파일" "뷰 이름" [옵션] "출력 파일" ... "snapshot file"은 다음 확장자를 가진 스냅샷 파일입니다: .jps, .hprof, .hpz, .phd, .jfr "뷰 이름"은(는) 아래 나열된 뷰 이름 중 하나입니다. [options]는 -option=value 형식의 옵션 목록입니다. "output file"은(는) 내보내기의 출력 파일입니다 글로벌 옵션: -obfuscator=none|proguard|yguard 선택한 난독화 도구에 대해 디옵스큐레이트합니다. 기본값은 "none"이며, 다른 값을 사용하려면 mappingFile 옵션을 지정해야 합니다. -mappingfile=<file> 선택한 난독화 도구에 대한 매핑 파일. -outputdir=<출력 디렉토리> 뷰의 출력 파일이 상대 경로 파일인 경우에 사용할 기본 디렉터리입니다. -ignoreerrors=true|false 옵션을 설정할 수 없는 뷰에서 발생하는 오류를 무시하고 다음 뷰로 계속 진행하십시오. 기본값은 "false"이며, 이는 첫 번째 오류가 발생하면 내보내기가 중단됨을 의미합니다. -csvseparator=<구분자 문자> CSV 내보내기의 필드 구분 문자입니다. 기본값은 ','입니다. -bitmap=false|true 적절한 경우, 주요 콘텐츠에 대해 SVG 대신 비트맵 이미지를 내보내십시오. 기본값은 false입니다. 사용 가능한 뷰 이름 및 옵션: * TelemetryHeap, TelemetryObjects, TelemetryThroughput, TelemetryGC, TelemetryClasses, TelemetryThreads, TelemetryCPU ??: -format=html|csv 내보낸 파일의 출력 형식을 결정합니다. 존재하지 않으면, 출력 파일의 확장자로부터 내보내기 형식이 결정됩니다. -minwidth=<픽셀 수> graph의 최소 너비(픽셀 단위)입니다. 기본값은 800입니다. -minheight=<픽셀 수> 픽셀 단위로 graph의 최소 높이입니다. 기본값은 600입니다. * Bookmarks, ThreadMonitor, CurrentMonitorUsage, MonitorUsageHistory ??: -format=html|csv * AllObjects ??: -format=html|csv -viewfilters=<쉼표로 구분된 목록> 내보내기를 위한 뷰 필터를 설정합니다. 뷰 필터를 설정하면, 내보내기된 뷰에 지정된 패키지와 그 하위 패키지만 표시됩니다. -viewfiltermode=startswith|endswith|contains|equals 뷰 필터 모드를 설정합니다. 기본값은 "contains"입니다. -viewfilteroptions=casesensitive 뷰 필터에 대한 Boolean 옵션입니다. 기본적으로 옵션이 설정되어 있지 않습니다. -aggregation=class|package|component 내보내기를 위한 집계 수준을 선택합니다. 기본값은 classes입니다. -expandpackages=true|false 패키지 집계 수준에서 패키지 노드를 확장하여 포함된 클래스를 표시합니다. 기본값은 "false"입니다. 다른 집계 수준 및 csv 출력 형식에서는 효과가 없습니다. * RecordedObjects AllObjects? ????? ?? ??? ???? ????: -liveness=live|gc|all 내보내기를 위한 활성도 모드를 선택합니다. 즉, 활성 객체, 가비지 수집된 객체 또는 둘 다 표시할지를 선택합니다. 기본값은 활성 객체입니다. * AllocationTree ??: -format=html|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component 내보내기를 위한 집계 수준을 선택합니다. 기본값은 methods입니다. -class=<fully qualified class name> 클래스에 대한 할당 데이터를 계산할 클래스를 지정합니다. 비어 있으면 모든 클래스의 할당이 표시됩니다. package 옵션과 함께 사용할 수 없습니다. -package=<fully qualified package name> 패키지에 대한 할당 데이터를 계산할 패키지를 지정합니다. 비어 있는 경우, 모든 패키지의 할당이 표시됩니다. 패키지 이름에 .**를 추가하면 패키지를 재귀적으로 선택합니다. class 옵션과 함께 사용할 수 없습니다. -liveness=live|gc|all * AllocationHotSpots ??: -format=html|csv|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component -class=<fully qualified class name> -package=<fully qualified package name> -liveness=live|gc|all -unprofiledclasses=separately|addtocalling 프로파일되지 않은 클래스를 별도로 표시할지 호출 클래스에 추가할지를 선택합니다. 기본값은 프로파일되지 않은 클래스를 별도로 표시하는 것입니다. -valuesummation=self|total 핫스팟의 시간이 어떻게 계산되는지를 결정합니다. 기본값은 "자체"입니다. -expandbacktraces=true|false HTML 또는 XML 형식으로 백트레이스를 확장합니다. 기본값은 "false"입니다. * ClassTracker TelemetryHeap? ????? ?? ??? ???? ????: -class 추적된 클래스입니다. 누락된 경우, 첫 번째로 추적된 클래스가 내보내집니다. * CallTree ??: -format=html|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component -threadgroup=<스레드 그룹의 이름> 내보내기를 위한 스레드 그룹을 선택합니다. "thread"도 지정하면 스레드는 이 스레드 그룹에서만 검색되며, 그렇지 않으면 전체 스레드 그룹이 표시됩니다. -thread=<스레드 이름> 스레드를 내보내기에 선택합니다. 기본적으로 호출 트리는 모든 스레드에 대해 병합됩니다. -threadstatus=all|running|waiting|blocking|netio 내보내기를 위한 스레드 상태를 선택합니다. 기본값은 "running"입니다. * HotSpots ??: -format=html|csv|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component -threadgroup=<스레드 그룹의 이름> -thread=<스레드 이름> -threadstatus=all|running|waiting|blocking|netio -expandbacktraces=true|false -unprofiledclasses=separately|addtocalling -valuesummation=self|total * OutlierDetection ??: -format=html|csv -threadstatus=all|running|waiting|blocking|netio -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive * Complexity ??: -format=html|csv|properties -fit=best|constant|linear|quadratic|cubic|exponential|logarithmic|n_log_n 내보내야 할 적합도입니다. 기본값은 "best"입니다. 곡선 피팅 데이터는 CSV로 내보내지 않습니다. -method=<method name> 복잡성 그래프를 내보낼 메서드 이름입니다. 지정하지 않으면 첫 번째 메서드가 내보내집니다. 그렇지 않으면 주어진 텍스트로 시작하는 첫 번째 메서드 이름이 내보내집니다. -width=<픽셀 수> -height=<픽셀 수> * ThreadHistory TelemetryHeap? ????? ??? ???????: -format=html * MonitorUsageStatistics ??: -format=html|csv -type=monitors|threads|classes 모니터 통계를 계산할 엔티티를 선택합니다. 기본값은 "monitors"입니다. * ProbeTimeLine ThreadHistory? ????? ?? ??? ???? ????: -probeid=<id> 프로브를 내보내야 하는 내부 ID입니다. 모든 사용 가능한 내장 프로브를 나열하고 사용자 정의 프로브 이름에 대한 설명을 보려면 "jpexport --listProbes"을 실행하세요. * ProbeControlObjects ??: -probeid=<id> -format=html|csv * ProbeCallTree ??: -probeid=<id> -format=html|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals|wildcard|regex -viewfilteroptions=exclude,casesensitive -aggregation=method|class|package|component -threadgroup=<스레드 그룹의 이름> -thread=<스레드 이름> -threadstatus=all|running|waiting|blocking|netio 내보내기를 위한 스레드 상태를 선택합니다. 기본값은 "all"입니다. * ProbeHotSpots ProbeCallTree? ????? ????? ??? ??? ????: -format=html|csv|xml -expandbacktraces=true|false * ProbeTelemetry TelemetryHeap? ????? ?? ??? ???? ????: -probeid=<id> -telemetrygroup 텔레메트리 그룹의 1 기반 인덱스를 설정합니다. 이는 프로브 텔레메트리 뷰 위의 드롭다운 목록에서 볼 수 있는 항목을 참조합니다. 기본값은 "1"입니다. * ProbeEvents ??: -probeid=<id> -format=html|csv|xml * ProbeTracker TelemetryHeap? ????? ?? ??? ???? ????: -probeid=<id> -index=<number> 드롭다운 목록에서 추적된 요소를 포함하는 항목의 0부터 시작하는 인덱스를 설정합니다. 기본값은 0입니다.
스냅샷 비교
실행 파일 bin/jpcompare
는 다른 스냅샷을 비교하고
이를 HTML 또는 기계 판독 가능한 형식으로 내보냅니다. -help
출력은 아래에 재현되어 있으며,
중복된 설명은 생략되었습니다.
사용법: jpcompare "스냅샷 파일"[,"스냅샷 파일",...] [글로벌 옵션] "비교 이름" [옵션] "출력 파일" "비교 이름" [옵션] "출력 파일" ... "snapshot file"은 다음 확장자를 가진 스냅샷 파일입니다: .jps, .hprof, .hpz, .phd, .jfr "비교 이름"은(는) 아래 나열된 비교 이름 중 하나입니다. [options]는 -option=value 형식의 옵션 목록입니다. "output file"은(는) 내보내기의 출력 파일입니다 글로벌 옵션: -outputdir=<출력 디렉토리> 비교의 출력 파일이 상대 경로 파일인 경우에 사용할 기본 디렉터리입니다. -ignoreerrors=true|false 옵션을 설정할 수 없는 비교에서 발생하는 오류를 무시하고 다음 비교로 계속 진행하십시오. 기본값은 "false"이며, 이는 첫 번째 오류가 발생하면 내보내기가 중단됨을 의미합니다. -csvseparator=<구분자 문자> CSV 내보내기의 필드 구분 문자입니다. 기본값은 ','입니다. -bitmap=false|true 적절한 경우, 주요 콘텐츠에 대해 SVG 대신 비트맵 이미지를 내보내십시오. 기본값은 false입니다. -sortbytime=false|true 지정된 스냅샷 파일을 수정 시간으로 정렬합니다. 기본값은 false입니다. -listfile=<filename> 스냅샷 파일의 경로를 포함하는 파일을 읽습니다. 각 줄에는 하나의 스냅샷 파일이 포함되어 있습니다. 사용 가능한 비교 이름 및 옵션: * Objects ??: -format=html|csv 내보낸 파일의 출력 형식을 결정합니다. 존재하지 않으면, 출력 파일의 확장자로부터 내보내기 형식이 결정됩니다. -viewfilters=<쉼표로 구분된 목록> 내보내기를 위한 뷰 필터를 설정합니다. 뷰 필터를 설정하면, 내보내기된 뷰에 지정된 패키지와 그 하위 패키지만 표시됩니다. -viewfiltermode=startswith|endswith|contains|equals 뷰 필터 모드를 설정합니다. 기본값은 "contains"입니다. -viewfilteroptions=casesensitive 뷰 필터에 대한 Boolean 옵션입니다. 기본적으로 옵션이 설정되어 있지 않습니다. -aggregation=class|package|component 내보내기를 위한 집계 수준을 선택합니다. 기본값은 classes입니다. -liveness=live|gc|all 내보내기를 위한 활성도 모드를 선택합니다. 즉, 활성 객체, 가비지 수집된 객체 또는 둘 다 표시할지를 선택합니다. 기본값은 활성 객체입니다. -objects=recorded|heapwalker|all 기록된 객체, 힙 워커의 객체 또는 모든 객체 덤프의 객체 수를 비교합니다. 기본값은 .jps 파일의 경우 기록된 객체이고, HPROF/PHD 파일의 경우 힙 워커입니다. -dumpselection=first|last|label 비교 계산에 사용되는 모든 객체 덤프입니다. 기본값은 마지막 값입니다. -label dumpselection이(가) 'label'로 설정된 경우, 비교를 계산해야 하는 레이블의 이름입니다. * AllocationHotSpots ??: -format=html|csv -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component 내보내기를 위한 집계 수준을 선택합니다. 기본값은 methods입니다. -liveness=live|gc|all -unprofiledclasses=separately|addtocalling 프로파일되지 않은 클래스를 별도로 표시할지 호출 클래스에 추가할지를 선택합니다. 기본값은 프로파일되지 않은 클래스를 별도로 표시하는 것입니다. -valuesummation=self|total 핫스팟의 시간이 어떻게 계산되는지를 결정합니다. 기본값은 "자체"입니다. -classselection 특정 클래스 또는 패키지에 대한 비교를 계산합니다. 패키지는 단일 패키지의 경우 '.*'를, 재귀 패키지의 경우 '.**'를 추가하여 지정합니다. 패키지를 와일드카드와 함께 지정하십시오, 예를 들어 'java.awt.*'. * AllocationTree ??: -format=html|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -aggregation=method|class|package|component -liveness=live|gc|all -classselection * HotSpots ??: -format=html|csv -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -firstthreadselection 특정 스레드 또는 스레드 그룹에 대한 비교를 계산합니다. 스레드 그룹을 'group.*'처럼 지정하고 특정 스레드 그룹 내의 스레드를 'group.thread'처럼 지정하세요. 스레드 이름의 점은 백슬래시로 이스케이프 처리하세요. -secondthreadselection 특정 스레드 또는 스레드 그룹에 대한 비교를 계산합니다. 'firstthreadselection'이(가) 설정된 경우에만 사용할 수 있습니다. 비어 있는 경우, 'firstthreadselection'에 대한 동일한 값이 사용됩니다. 스레드 그룹을 'group.*'처럼 지정하고 특정 스레드 그룹 내의 스레드를 'group.thread'처럼 지정하세요. 스레드 이름의 점은 백슬래시로 이스케이프 처리하세요. -threadstatus=all|running|waiting|blocking|netio 내보내기를 위한 스레드 상태를 선택합니다. 기본값은 "running"입니다. -aggregation=method|class|package|component -differencecalculation=total|average 호출 시간에 대한 차이 계산 방법을 선택합니다. 기본값은 총 시간입니다. -unprofiledclasses=separately|addtocalling -valuesummation=self|total * CallTree ??: -format=html|xml -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals -viewfilteroptions=casesensitive -firstthreadselection -secondthreadselection -threadstatus=all|running|waiting|blocking|netio -aggregation=method|class|package|component -differencecalculation=total|average * TelemetryHeap ??: -format=html|csv -minwidth=<픽셀 수> graph의 최소 너비(픽셀 단위)입니다. 기본값은 800입니다. -minheight=<픽셀 수> 픽셀 단위로 graph의 최소 높이입니다. 기본값은 600입니다. -valuetype=current|maximum|bookmark 스냅샷마다 계산되는 값의 유형입니다. 기본값은 현재 값입니다. -bookmarkname valuetype이(가) 'bookmark'로 설정된 경우, 값을 계산해야 하는 북마크의 이름입니다. -measurements=maximum,free,used 비교 그래프에 표시되는 측정값입니다. 여러 값을 쉼표로 연결하십시오. 기본값은 'used'입니다. -memorytype=heap|nonheap 분석할 메모리 유형입니다. 기본값은 'heap'입니다. -memorypool 특수 메모리 풀을 분석하려면 이 매개변수에 이름을 지정할 수 있습니다. 기본값은 비어 있으며, 즉 특수 메모리 풀이 없습니다. * TelemetryObjects ??: -format=html|csv -minwidth=<픽셀 수> -minheight=<픽셀 수> -valuetype=current|maximum|bookmark -bookmarkname -measurements=total,nonarrays,arrays 비교 그래프에 표시되는 측정값입니다. 여러 값을 쉼표로 연결하십시오. 기본값은 'total'입니다. * TelemetryClasses TelemetryObjects? ????? ??? ???????: -measurements=total,filtered,unfiltered * TelemetryThreads TelemetryObjects? ????? ??? ???????: -measurements=total,runnable,blocked,netio,waiting * ProbeHotSpots ??: -format=html|csv -viewfilters=<쉼표로 구분된 목록> -viewfiltermode=startswith|endswith|contains|equals|wildcard|regex -viewfilteroptions=exclude,casesensitive -firstthreadselection -secondthreadselection -threadstatus=all|running|waiting|blocking|netio -aggregation=method|class|package|component -differencecalculation=total|average -probeid=<id> 프로브를 내보내야 하는 내부 ID입니다. 모든 사용 가능한 내장 프로브를 나열하고 사용자 정의 프로브 이름에 대한 설명을 보려면 "jpexport --listProbes"을 실행하세요. * ProbeCallTree ProbeHotSpots? ????? ??? ???????: -format=html|xml * ProbeTelemetry TelemetryObjects? ????? ????? ??? ??? ????: -measurements 측정값 비교 그래프에 표시되는 텔레메트리 그룹의 1 기반 인덱스입니다. 여러 값을 쉼표로 연결하여 "1,2"와 같이 입력하세요. 기본값은 모든 측정값을 표시하는 것입니다. -probeid=<id> -telemetrygroup 텔레메트리 그룹의 1 기반 인덱스를 설정합니다. 이는 프로브 텔레메트리 뷰 위의 드롭다운 목록에서 볼 수 있는 항목을 참조합니다. 기본값은 "1"입니다.
자동 출력 형식
대부분의 뷰와 비교는 여러 출력 형식을 지원합니다. 기본적으로 출력 형식은 출력 파일의 확장자로부터 유추됩니다:
.html
뷰 또는 비교가 HTML 파일로 내보내집니다. HTML 페이지에 사용된 이미지를 포함하는jprofiler_images
라는 디렉토리가 생성됩니다..csv
데이터는 첫 번째 줄에 열 이름이 포함된 CSV 데이터로 내보내집니다.
Microsoft Excel을 사용할 때, CSV는 안정적인 형식이 아닙니다. Windows의 Microsoft Excel은 지역 설정에서 구분 문자를 가져옵니다. JProfiler는 소수점 구분자로 쉼표를 사용하는 지역에서는 세미콜론을 구분 문자로 사용하고, 소수점 구분자로 점을 사용하는 지역에서는 쉼표를 사용합니다. CSV 구분 문자를 재정의해야 하는 경우, 전역
csvseparator
옵션을 설정하여 그렇게 할 수 있습니다..xml
데이터는 XML로 내보내집니다. 데이터 형식은 자체 설명적입니다.
다른 확장자를 사용하고 싶다면, format
옵션을 사용하여
출력 형식의 선택을 재정의할 수 있습니다.
스냅샷 분석
생성된 스냅샷에 힙 덤프가 포함되어 있는 경우,
실행 파일을 사용하여 bin/jpanalyze힙 덤프 분석을 미리 준비할 수 있습니다.
JProfiler GUI에서 스냅샷을 열면 매우 빠르게 열립니다. 도구의 사용 정보는 아래에 표시됩니다:
사용법: jpanalyze [옵션] "스냅샷 파일" ["스냅샷 파일" ...] "snapshot file"은 다음 확장자를 가진 스냅샷 파일입니다: .jps, .hprof, .hpz, .phd, .jfr [options]는 -option=value 형식의 옵션 목록입니다. 옵션: -obfuscator=none|proguard|yguard 선택한 난독화 도구에 대해 디옵스큐레이트합니다. 기본값은 "none"이며, 다른 값을 사용하려면 mappingFile 옵션을 지정해야 합니다. -mappingfile=<file> 선택한 난독화 도구에 대한 매핑 파일. -removeunreferenced=true|false 참조되지 않거나 약하게 참조된 객체를 제거해야 하는 경우. -retained=true|false 가장 큰 객체의 유지 크기를 계산합니다. removeunreferenced가 true로 설정됩니다. -retainsoft=true|false 참조되지 않은 객체가 제거될 경우, 소프트 참조를 유지할지 여부를 지정합니다. -retainweak=true|false 참조되지 않은 객체가 제거될 경우, 약한 참조를 유지할지 여부를 지정합니다. -retainphantom=true|false 참조되지 않은 객체가 제거되면, 팬텀 참조를 유지할지 여부를 지정합니다. -retainfinalizer=true|false 참조되지 않은 객체가 제거될 경우, finalizer 참조를 유지할지 여부를 지정합니다.
removeUnreferenced
, retained
및 모든 retain*
명령줄 옵션은 힙 워커 옵션 대화 상자의 옵션에 해당합니다.