microsoft/gctoolkit

Public

mirrored fromhttps://github.com/microsoft/gctoolkitAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
e22688560c1eb1b7b3ede206548949117df9a0d8

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

sample/README.md

49lines · modecode

1# GCToolKit introductory sample
2
3This sample shows how to use [GCToolKit](../README.md) to analyze a GC log file and report on total heap occupancy after a GC cycle has been completed. For more details on how GCToolKit and this sample work, visit [Introducing Microsoft GCToolKit](https://devblogs.microsoft.com/java/introducing-microsoft-gctoolkit/).
4
5## To run the sample
6
7We use the Maven wrapper (`mvnw`) so you don't have to change your system wide Maven.
8
9### From Maven
10
11Install the sample to your local maven repository with `mvnw install`, then use `mvnw exec:exec` to run the sample.
12
13```shell
14mvnw clean install
15mvnw exec:exec
16```
17
18By default, the sample analyzes `../gclogs/preunified/cms/defnew/details/defnew.log`. Set the parameter `gcLogPath` to analyze a different GC log file.
19
20```shell
21mvnw exec:exec -DgcLogFile=../gclogs/unified/parallel/parallelgc.log
22```
23
24### From the command line
25
26The sample can also be run from the command line with Java 11 or higher. Compile the sample with `mvnw compile dependency:copy-dependencies`,
27then run `java` with `--module-path` and give it the path to a GC log file as an argument.
28
29```shell
30mvnw clean compile dependency:copy-dependencies
31java --module-path target/classes:target/lib --module com.microsoft.gctoolkit.sample/com.microsoft.gctoolkit.sample.Main ../gclogs/preunified/cms/defnew/details/defnew.log
32```
33
34## Troubleshooting
35
36### `mvnw exec:java` fails
37
38If you try to run the `exec:java` goal, you may see the following error:
39
40`Unable to parse configuration of mojo org.codehaus.mojo:exec-maven-plugin:3.0.0:java for parameter arguments: Cannot store value into array`
41
42This has something to do with the [Exec Maven Plugin](https://www.mojohaus.org/exec-maven-plugin/), which automatically builds the command line from the project dependencies. But it is unclear exactly what the cause of this issue is. The solution is to use the `exec:exec` goal.
43
44### java.nio.file.NoSuchFileException: ../gclogs/preunified/cms/defnew/details/defnew.log
45
46There are two possible issues here.
47
481. There is no `gclogs` directory in the _top-level_ directory. The sample uses `unit-test` data from building GCToolKit. Either run `mvnw test` from the _top-level_ directory, or use `-DgcLogFile=<path-to-gc-log-file>` argument to specify a log file.
491. The sample is not being run from the `sample` directory. Please ensure you are in the sample directory before executing `mvnw exec:exec`.
50