Types

Link copied to clipboard
class DeleteOnHeapDumpClose(deleteFile: (File) -> Unit = { it.delete() }) : HeapDumpStorageStrategy

Deletes heap dumps as soon as we're done traversing them. This is the most disk space efficient strategy.

Link copied to clipboard

No deletion of heap dump files. This is useful if you intend to open up the heap dumps directly or re run the analysis no matter the outcome.

Link copied to clipboard
class KeepHeapDumpsOnObjectsGrowing(deleteFile: (File) -> Unit = { it.delete() }) : HeapDumpStorageStrategy

Keeps the heap dumps until we're done diffing, then delete them only if there are no growing objects. This is useful if you intend to open up the heap dumps directly or re run the analysis on failure.

Link copied to clipboard
class KeepZippedHeapDumpsOnObjectsGrowing(deleteFile: (File) -> Unit = { it.delete() }) : HeapDumpStorageStrategy

Keeps the heap dumps until we're done diffing, then on completion creates a zip for each heap dump if there are growing object, and delete all the source heap dumps. This is useful if you intend to upload the heap dumps on failure in CI and you want to keep disk space, network usage and cloud storage low. Zipped heap dumps are typically 4x smaller so this is worth it, although the trade off is that zipping can add a few seconds per heap dump to the runtime duration of a test.

Functions

Link copied to clipboard
open fun onHeapDiffResult(result: Result<HeapDiff>)
Link copied to clipboard
open fun onHeapDumpClosed(heapDumpFile: File)
Link copied to clipboard
open fun onHeapDumped(heapDumpFile: File)