mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-21 23:05:50 +00:00
Add scripts & data for profiling overhead benchmark
This commit is contained in:
parent
56f09331aa
commit
e0f07dd9dd
21 changed files with 62381 additions and 28 deletions
82
scripts/bench.sh
Executable file
82
scripts/bench.sh
Executable file
|
@ -0,0 +1,82 @@
|
|||
#!/bin/bash
|
||||
INJECT_COUNT=5
|
||||
OUTPUT_FILE=out_petclinic.txt
|
||||
|
||||
function bench () {
|
||||
if [ "$1" == "" ];
|
||||
then
|
||||
echo "Missing tag"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$2" == "" ];
|
||||
then
|
||||
echo "Missing jdk"
|
||||
exit 1
|
||||
fi
|
||||
TAG=$1
|
||||
JDK=$2
|
||||
# checking prequisites
|
||||
checks $TAG
|
||||
for I in $(seq $INJECT_COUNT);
|
||||
do
|
||||
if [ -f $OUTPUT_FILE ];
|
||||
then
|
||||
rm $OUTPUT_FILE
|
||||
fi
|
||||
echo "$(date +%H:%M:%S) Starting application ${TAG}-${JDK} run $I/$INJECT_COUNT..."
|
||||
./start.sh $TAG $JDK &
|
||||
PID=$!
|
||||
DEAD=0
|
||||
sleep 0.2
|
||||
while [ "$(grep -o "Started PetClinicApplication" $OUTPUT_FILE)" != "Started PetClinicApplication" -a "$DEAD" != "1" ];
|
||||
do
|
||||
kill -0 $PID
|
||||
DEAD=$?
|
||||
sleep 1
|
||||
done
|
||||
if [ "$DEAD" == "1" ];
|
||||
then
|
||||
echo "Application not started correctly!"
|
||||
exit 1
|
||||
fi
|
||||
echo "$(date +%H:%M:%S) Sending requests..."
|
||||
./inject.sh results_${TAG}-${JDK}-${I}.csv
|
||||
echo "Killing $PID"
|
||||
pkill -P $PID
|
||||
sleep 1
|
||||
done
|
||||
python percentiles.py ${TAG}-${JDK}.csv results_${TAG}-${JDK}-*.csv
|
||||
}
|
||||
|
||||
function checks () {
|
||||
TAG=$1
|
||||
if [ "$TAG" == "ap" ];
|
||||
then
|
||||
if [ ! -f ../../ap/build/libasyncProfiler.so ];
|
||||
then
|
||||
echo "Async profiler library is missing."
|
||||
exit 1
|
||||
fi
|
||||
echo 1 | sudo tee /proc/sys/kernel/perf_event_paranoid
|
||||
echo 0 | sudo tee /proc/sys/kernel/kptr_restrict
|
||||
fi
|
||||
if [ "$TAG" == "dd" ];
|
||||
then
|
||||
if [ ! -f ../../dd-java-agent.jar ];
|
||||
then
|
||||
echo "DD java agent is missing"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f ../../profiling-api-key ];
|
||||
then
|
||||
echo "DD api-key file is missing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
bench none zulu8
|
||||
bench ap zulu8
|
||||
bench jfr zulu8
|
||||
bench dd zulu8
|
||||
|
895
scripts/default.jfc
Normal file
895
scripts/default.jfc
Normal file
|
@ -0,0 +1,895 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
Recommended way to edit .jfc files is to use Java Mission Control,
|
||||
see Window -> Flight Recorder Template Manager.
|
||||
-->
|
||||
|
||||
<configuration version="2.0" label="Continuous" description="Low overhead configuration safe for continuous use in production environments, typically less than 1 % overhead." provider="Oracle">
|
||||
|
||||
<event name="jdk.ThreadAllocationStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoadingStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoaderStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaThreadStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SymbolTableStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringTableStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PlaceholderTableStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LoaderConstraintsTableStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ProtectionDomainCacheTableStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadStart">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadEnd">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadSleep">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadPark">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorEnter">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorWait">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorInflate">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockRevocation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockSelfRevocation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockClassRevocation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ReservedStackActivation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoad">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassDefine">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassUnload">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JVMInformation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.InitialSystemProperty">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExecutionSample">
|
||||
<setting name="enabled" control="method-sampling-enabled">true</setting>
|
||||
<setting name="period" control="method-sampling-java-interval">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NativeMethodSample">
|
||||
<setting name="enabled" control="method-sampling-enabled">true</setting>
|
||||
<setting name="period" control="method-sampling-native-interval">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointBegin">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointStateSynchronization">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointWaitBlocked">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointCleanup">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointCleanupTask">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointEnd">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExecuteVMOperation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.Shutdown">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadDump">
|
||||
<setting name="enabled" control="thread-dump-enabled">true</setting>
|
||||
<setting name="period" control="thread-dump-interval">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.IntFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedIntFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LongFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedLongFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DoubleFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BooleanFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringFlag">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.IntFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedIntFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LongFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedLongFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DoubleFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BooleanFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringFlagChanged">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectCount">
|
||||
<setting name="enabled" control="memory-profiling-enabled-all">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCHeapConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.YoungGenerationConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCTLABConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCSurvivorConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectCountAfterGC">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCHeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PSHeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceGCThreshold">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceAllocationFailure">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceOOM">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceChunkFreeListSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ParallelOldGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.YoungGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OldGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1GarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePause">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel1">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel2">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel3">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel4">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhaseConcurrent">
|
||||
<setting name="enabled" control="gc-enabled-all">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCReferenceStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromotionFailed">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.EvacuationFailed">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.EvacuationInformation">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1MMU">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1EvacuationYoungStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1EvacuationOldStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1BasicIHOP">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1AdaptiveIHOP">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromoteObjectInNewPLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromoteObjectOutsidePLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ConcurrentModeFailure">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.AllocationRequiringGC">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.TenuringDistribution">
|
||||
<setting name="enabled" control="gc-enabled-normal">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapRegionInformation">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapRegionTypeChange">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OldObjectSample">
|
||||
<setting name="enabled" control="memory-leak-detection-enabled">true</setting>
|
||||
<setting name="stackTrace" control="memory-leak-detection-stack-trace">false</setting>
|
||||
<setting name="cutoff" control="memory-leak-detection-cutoff">0 ns</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.Compilation">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="threshold" control="compiler-compilation-threshold">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerPhase">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="threshold" control="compiler-phase-threshold">60 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilationFailure">
|
||||
<setting name="enabled" control="compiler-enabled-failure">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerInlining">
|
||||
<setting name="enabled" control="compiler-enabled-failure">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeSweeperConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeSweeperStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SweepCodeCache">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="threshold" control="compiler-sweeper-threshold">100 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheFull">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OSInformation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.VirtualizationInformation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPUInformation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadContextSwitchRate">
|
||||
<setting name="enabled" control="compiler-enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPULoad">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadCPULoad">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPUTimeStampCounter">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SystemProcess">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">endChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NetworkUtilization">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">5 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.InitialEnvironmentVariable">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PhysicalMemory">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectAllocationInNewTLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectAllocationOutsideTLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NativeLibrary">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileForce">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileRead">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileWrite">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SocketRead">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="socket-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SocketWrite">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="socket-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SecurityPropertyModification">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.TLSHandshake">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.X509Validation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.X509Certificate">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaExceptionThrow">
|
||||
<setting name="enabled" control="enable-exceptions">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaErrorThrow">
|
||||
<setting name="enabled" control="enable-errors">true</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExceptionStatistics">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ActiveRecording">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ActiveSetting">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DataLoss">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DumpReason">
|
||||
<setting name="enabled">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZPageAllocation">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZThreadPhase">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZStatisticsCounter">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZStatisticsSampler">
|
||||
<setting name="enabled">true</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Contents of the control element is not read by the JVM, it's used
|
||||
by Java Mission Control to change settings that carry the control attribute.
|
||||
-->
|
||||
<control>
|
||||
<selection name="gc-level" default="detailed" label="Garbage Collector">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="detailed">normal</option>
|
||||
<option label="All" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="gc-enabled-normal" true="true" false="false">
|
||||
<or>
|
||||
<test name="gc-level" operator="equal" value="normal"/>
|
||||
<test name="gc-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="gc-enabled-all" true="true" false="false">
|
||||
<test name="gc-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="memory-profiling" default="off" label="Memory Profiling">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Object Allocation and Promotion" name="medium">medium</option>
|
||||
<option label="All, including Heap Statistics (May cause long full GCs)" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="memory-profiling-enabled-medium" true="true" false="false">
|
||||
<or>
|
||||
<test name="memory-profiling" operator="equal" value="medium"/>
|
||||
<test name="memory-profiling" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-profiling-enabled-all" true="true" false="false">
|
||||
<test name="memory-profiling" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="compiler-level" default="normal" label="Compiler">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="normal">normal</option>
|
||||
<option label="Detailed" name="detailed">detailed</option>
|
||||
<option label="All" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="compiler-enabled" true="false" false="true">
|
||||
<test name="compiler-level" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-enabled-failure" true="true" false="false">
|
||||
<or>
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-sweeper-threshold" true="0 ms" false="100 ms">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="1000 ms">
|
||||
<test name="compiler-level" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="100 ms">
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="0 ms">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="60 s">
|
||||
<test name="compiler-level" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="10 s">
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="0 s">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="method-sampling-interval" default="normal" label="Method Sampling">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="normal">normal</option>
|
||||
<option label="High" name="high">high</option>
|
||||
<option label="Ludicrous (High Overhead)" name="ludicrous">ludicrous</option>
|
||||
</selection>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="999 d">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="20 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="10 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="high"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="1 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="ludicrous"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-native-interval" true="999 d">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-native-interval" true="20 ms">
|
||||
<or>
|
||||
<test name="method-sampling-interval" operator="equal" value="normal"/>
|
||||
<test name="method-sampling-interval" operator="equal" value="high"/>
|
||||
<test name="method-sampling-interval" operator="equal" value="ludicrous"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-enabled" true="false" false="true">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<selection name="thread-dump-interval" default="normal" label="Thread Dump">
|
||||
<option label="Off" name="off">999 d</option>
|
||||
<option label="At least Once" name="normal">everyChunk</option>
|
||||
<option label="Every 60 s" name="everyMinute">60 s</option>
|
||||
<option label="Every 10 s" name="everyTenSecond">10 s</option>
|
||||
<option label="Every 1 s" name="everySecond">1 s</option>
|
||||
</selection>
|
||||
|
||||
<condition name="thread-dump-enabled" true="false" false="true">
|
||||
<test name="thread-dump-interval" operator="equal" value="999 d"/>
|
||||
</condition>
|
||||
|
||||
<selection name="exception-level" default="errors" label="Exceptions">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Errors Only" name="errors">errors</option>
|
||||
<option label="All Exceptions, including Errors" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="enable-errors" true="true" false="false">
|
||||
<or>
|
||||
<test name="exception-level" operator="equal" value="errors"/>
|
||||
<test name="exception-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="enable-exceptions" true="true" false="false">
|
||||
<test name="exception-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="memory-leak-detection" default="minimal" label="Memory Leak Detection">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Object Types" name="minimal">minimal</option>
|
||||
<option label="Object Types + Allocation Stack Traces" name="medium">medium</option>
|
||||
<option label="Object Types + Allocation Stack Traces + Path to GC Root" name="full">full</option>
|
||||
</selection>
|
||||
|
||||
<condition name="memory-leak-detection-enabled" true="false" false="true">
|
||||
<test name="memory-leak-detection" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-leak-detection-stack-trace" true="true" false="false">
|
||||
<or>
|
||||
<test name="memory-leak-detection" operator="equal" value="medium"/>
|
||||
<test name="memory-leak-detection" operator="equal" value="full"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-leak-detection-cutoff" true="1 h" false="0 ns">
|
||||
<test name="memory-leak-detection" operator="equal" value="full"/>
|
||||
</condition>
|
||||
|
||||
<text name="synchronization-threshold" label="Synchronization Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<text name="file-io-threshold" label="File I/O Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<text name="socket-io-threshold" label="Socket I/O Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<flag name="class-loading-enabled" label="Class Loading">false</flag>
|
||||
|
||||
</control>
|
||||
|
||||
</configuration>
|
895
scripts/exec_sampling.jfc
Normal file
895
scripts/exec_sampling.jfc
Normal file
|
@ -0,0 +1,895 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
Recommended way to edit .jfc files is to use Java Mission Control,
|
||||
see Window -> Flight Recorder Template Manager.
|
||||
-->
|
||||
|
||||
<configuration version="2.0" label="Continuous" description="Low overhead configuration safe for continuous use in production environments, typically less than 1 % overhead." provider="Oracle">
|
||||
|
||||
<event name="jdk.ThreadAllocationStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoadingStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoaderStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaThreadStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SymbolTableStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringTableStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PlaceholderTableStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LoaderConstraintsTableStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ProtectionDomainCacheTableStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadStart">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadEnd">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadSleep">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadPark">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorEnter">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorWait">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaMonitorInflate">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="synchronization-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockRevocation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockSelfRevocation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BiasedLockClassRevocation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ReservedStackActivation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassLoad">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassDefine">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ClassUnload">
|
||||
<setting name="enabled" control="class-loading-enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JVMInformation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.InitialSystemProperty">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExecutionSample">
|
||||
<setting name="enabled" control="method-sampling-enabled">true</setting>
|
||||
<setting name="period" control="method-sampling-java-interval">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NativeMethodSample">
|
||||
<setting name="enabled" control="method-sampling-enabled">true</setting>
|
||||
<setting name="period" control="method-sampling-native-interval">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointBegin">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointStateSynchronization">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointWaitBlocked">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointCleanup">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointCleanupTask">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SafepointEnd">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExecuteVMOperation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.Shutdown">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadDump">
|
||||
<setting name="enabled" control="thread-dump-enabled">false</setting>
|
||||
<setting name="period" control="thread-dump-interval">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.IntFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedIntFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LongFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedLongFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DoubleFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BooleanFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringFlag">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.IntFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedIntFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.LongFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.UnsignedLongFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DoubleFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.BooleanFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.StringFlagChanged">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectCount">
|
||||
<setting name="enabled" control="memory-profiling-enabled-all">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCHeapConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">flase</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.YoungGenerationConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">flase</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCTLABConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">flase</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCSurvivorConfiguration">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectCountAfterGC">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCHeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PSHeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceGCThreshold">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceAllocationFailure">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceOOM">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.MetaspaceChunkFreeListSummary">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ParallelOldGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.YoungGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OldGarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1GarbageCollection">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePause">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel1">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel2">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel3">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhasePauseLevel4">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCPhaseConcurrent">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.GCReferenceStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromotionFailed">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.EvacuationFailed">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.EvacuationInformation">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1MMU">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1EvacuationYoungStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1EvacuationOldStatistics">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1BasicIHOP">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1AdaptiveIHOP">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromoteObjectInNewPLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PromoteObjectOutsidePLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ConcurrentModeFailure">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.AllocationRequiringGC">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.TenuringDistribution">
|
||||
<setting name="enabled" control="gc-enabled-normal">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapRegionInformation">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.G1HeapRegionTypeChange">
|
||||
<setting name="enabled" control="gc-enabled-all">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OldObjectSample">
|
||||
<setting name="enabled" control="memory-leak-detection-enabled">false</setting>
|
||||
<setting name="stackTrace" control="memory-leak-detection-stack-trace">false</setting>
|
||||
<setting name="cutoff" control="memory-leak-detection-cutoff">0 ns</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.Compilation">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="threshold" control="compiler-compilation-threshold">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerPhase">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="threshold" control="compiler-phase-threshold">60 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilationFailure">
|
||||
<setting name="enabled" control="compiler-enabled-failure">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CompilerInlining">
|
||||
<setting name="enabled" control="compiler-enabled-failure">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeSweeperConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeSweeperStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SweepCodeCache">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="threshold" control="compiler-sweeper-threshold">100 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheConfiguration">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheStatistics">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CodeCacheFull">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.OSInformation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.VirtualizationInformation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPUInformation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadContextSwitchRate">
|
||||
<setting name="enabled" control="compiler-enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPULoad">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ThreadCPULoad">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">10 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.CPUTimeStampCounter">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SystemProcess">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">endChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NetworkUtilization">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">5 s</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.InitialEnvironmentVariable">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">beginChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.PhysicalMemory">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectAllocationInNewTLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ObjectAllocationOutsideTLAB">
|
||||
<setting name="enabled" control="memory-profiling-enabled-medium">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.NativeLibrary">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">everyChunk</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileForce">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileRead">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.FileWrite">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="file-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SocketRead">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="socket-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SocketWrite">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
<setting name="threshold" control="socket-io-threshold">20 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.SecurityPropertyModification">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.TLSHandshake">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.X509Validation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.X509Certificate">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaExceptionThrow">
|
||||
<setting name="enabled" control="enable-exceptions">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.JavaErrorThrow">
|
||||
<setting name="enabled" control="enable-errors">false</setting>
|
||||
<setting name="stackTrace">true</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ExceptionStatistics">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="period">1000 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ActiveRecording">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ActiveSetting">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DataLoss">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.DumpReason">
|
||||
<setting name="enabled">false</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZPageAllocation">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZThreadPhase">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">0 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZStatisticsCounter">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
<event name="jdk.ZStatisticsSampler">
|
||||
<setting name="enabled">false</setting>
|
||||
<setting name="threshold">10 ms</setting>
|
||||
</event>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Contents of the control element is not read by the JVM, it's used
|
||||
by Java Mission Control to change settings that carry the control attribute.
|
||||
-->
|
||||
<control>
|
||||
<selection name="gc-level" default="detailed" label="Garbage Collector">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="detailed">normal</option>
|
||||
<option label="All" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="gc-enabled-normal" true="true" false="false">
|
||||
<or>
|
||||
<test name="gc-level" operator="equal" value="normal"/>
|
||||
<test name="gc-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="gc-enabled-all" true="true" false="false">
|
||||
<test name="gc-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="memory-profiling" default="off" label="Memory Profiling">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Object Allocation and Promotion" name="medium">medium</option>
|
||||
<option label="All, including Heap Statistics (May cause long full GCs)" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="memory-profiling-enabled-medium" true="true" false="false">
|
||||
<or>
|
||||
<test name="memory-profiling" operator="equal" value="medium"/>
|
||||
<test name="memory-profiling" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-profiling-enabled-all" true="true" false="false">
|
||||
<test name="memory-profiling" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="compiler-level" default="normal" label="Compiler">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="normal">normal</option>
|
||||
<option label="Detailed" name="detailed">detailed</option>
|
||||
<option label="All" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="compiler-enabled" true="false" false="true">
|
||||
<test name="compiler-level" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-enabled-failure" true="true" false="false">
|
||||
<or>
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-sweeper-threshold" true="0 ms" false="100 ms">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="1000 ms">
|
||||
<test name="compiler-level" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="100 ms">
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-compilation-threshold" true="0 ms">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="60 s">
|
||||
<test name="compiler-level" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="10 s">
|
||||
<test name="compiler-level" operator="equal" value="detailed"/>
|
||||
</condition>
|
||||
|
||||
<condition name="compiler-phase-threshold" true="0 s">
|
||||
<test name="compiler-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="method-sampling-interval" default="normal" label="Method Sampling">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Normal" name="normal">normal</option>
|
||||
<option label="High" name="high">high</option>
|
||||
<option label="Ludicrous (High Overhead)" name="ludicrous">ludicrous</option>
|
||||
</selection>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="999 d">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="20 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="normal"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="10 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="high"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-java-interval" true="1 ms">
|
||||
<test name="method-sampling-interval" operator="equal" value="ludicrous"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-native-interval" true="999 d">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-native-interval" true="20 ms">
|
||||
<or>
|
||||
<test name="method-sampling-interval" operator="equal" value="normal"/>
|
||||
<test name="method-sampling-interval" operator="equal" value="high"/>
|
||||
<test name="method-sampling-interval" operator="equal" value="ludicrous"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="method-sampling-enabled" true="false" false="true">
|
||||
<test name="method-sampling-interval" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<selection name="thread-dump-interval" default="normal" label="Thread Dump">
|
||||
<option label="Off" name="off">999 d</option>
|
||||
<option label="At least Once" name="normal">everyChunk</option>
|
||||
<option label="Every 60 s" name="everyMinute">60 s</option>
|
||||
<option label="Every 10 s" name="everyTenSecond">10 s</option>
|
||||
<option label="Every 1 s" name="everySecond">1 s</option>
|
||||
</selection>
|
||||
|
||||
<condition name="thread-dump-enabled" true="false" false="true">
|
||||
<test name="thread-dump-interval" operator="equal" value="999 d"/>
|
||||
</condition>
|
||||
|
||||
<selection name="exception-level" default="errors" label="Exceptions">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Errors Only" name="errors">errors</option>
|
||||
<option label="All Exceptions, including Errors" name="all">all</option>
|
||||
</selection>
|
||||
|
||||
<condition name="enable-errors" true="true" false="false">
|
||||
<or>
|
||||
<test name="exception-level" operator="equal" value="errors"/>
|
||||
<test name="exception-level" operator="equal" value="all"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="enable-exceptions" true="true" false="false">
|
||||
<test name="exception-level" operator="equal" value="all"/>
|
||||
</condition>
|
||||
|
||||
<selection name="memory-leak-detection" default="minimal" label="Memory Leak Detection">
|
||||
<option label="Off" name="off">off</option>
|
||||
<option label="Object Types" name="minimal">minimal</option>
|
||||
<option label="Object Types + Allocation Stack Traces" name="medium">medium</option>
|
||||
<option label="Object Types + Allocation Stack Traces + Path to GC Root" name="full">full</option>
|
||||
</selection>
|
||||
|
||||
<condition name="memory-leak-detection-enabled" true="false" false="true">
|
||||
<test name="memory-leak-detection" operator="equal" value="off"/>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-leak-detection-stack-trace" true="true" false="false">
|
||||
<or>
|
||||
<test name="memory-leak-detection" operator="equal" value="medium"/>
|
||||
<test name="memory-leak-detection" operator="equal" value="full"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<condition name="memory-leak-detection-cutoff" true="1 h" false="0 ns">
|
||||
<test name="memory-leak-detection" operator="equal" value="full"/>
|
||||
</condition>
|
||||
|
||||
<text name="synchronization-threshold" label="Synchronization Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<text name="file-io-threshold" label="File I/O Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<text name="socket-io-threshold" label="Socket I/O Threshold" contentType="timespan" minimum="0 s">20 ms</text>
|
||||
|
||||
<flag name="class-loading-enabled" label="Class Loading">false</flag>
|
||||
|
||||
</control>
|
||||
|
||||
</configuration>
|
7
scripts/fetch_ap.sh
Executable file
7
scripts/fetch_ap.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
pushd .
|
||||
mkdir ../../ap
|
||||
cd ../../ap
|
||||
curl -OL https://github.com/jvm-profiling-tools/async-profiler/releases/download/v1.7/async-profiler-1.7-linux-x64.tar.gz
|
||||
tar xzvf async-profiler-1.7-linux-x64.tar.gz
|
||||
popd
|
5
scripts/fetch_dd.sh
Executable file
5
scripts/fetch_dd.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
pushd .
|
||||
cd ../..
|
||||
wget -O $HOME/dd-java-agent.jar 'https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=com.datadoghq&a=dd-java-agent&v=LATEST'
|
||||
popd
|
30
scripts/generate_vets.py
Normal file
30
scripts/generate_vets.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
import sys
|
||||
|
||||
# INSERT INTO vets VALUES (1, 'James', 'Carter');
|
||||
# INSERT INTO vets VALUES (2, 'Helen', 'Leary');
|
||||
# INSERT INTO vets VALUES (3, 'Linda', 'Douglas');
|
||||
# INSERT INTO vets VALUES (4, 'Rafael', 'Ortega');
|
||||
# INSERT INTO vets VALUES (5, 'Henry', 'Stevens');
|
||||
# INSERT INTO vets VALUES (6, 'Sharon', 'Jenkins');
|
||||
|
||||
output_filename = sys.argv[1]
|
||||
|
||||
counter = 0
|
||||
idx = 1
|
||||
with open(output_filename, "w") as output:
|
||||
# vets
|
||||
for counter in range(3000):
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'James', 'Carter{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'Helen', 'Leary{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'Linda', 'Douglas{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'Rafael', 'Ortega{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'Henry', 'Stevens{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
output.write("INSERT INTO vets VALUES ({:d}, 'Sharon', 'Jenkins{:04d}');\n".format(idx, counter))
|
||||
idx += 1
|
||||
|
||||
|
36
scripts/initworkspace.sh
Executable file
36
scripts/initworkspace.sh
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
if [ "$1" == "" ];
|
||||
then
|
||||
BASEDIR=$(cd ../..; pwd)
|
||||
else
|
||||
BASEDIR=$1
|
||||
fi
|
||||
echo "Base directory: $BASEDIR"
|
||||
if [ ! -d $BASEDIR/jdk/zulu8.46.0.19-ca-jdk8.0.252-linux_x64 ];
|
||||
then
|
||||
echo "Downloading JDKs..."
|
||||
pushd .
|
||||
cd $BASEDIR
|
||||
mkdir jdk
|
||||
cd jdk
|
||||
curl -OL https://cdn.azul.com/zulu/bin/zulu8.46.0.19-ca-jdk8.0.252-linux_x64.tar.gz
|
||||
tar xzvf zulu8.46.0.19-ca-jdk8.0.252-linux_x64.tar.gz
|
||||
curl -OL https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz
|
||||
tar xzvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz
|
||||
curl -OL https://builds.shipilev.net/openjdk-jdk8-dev/openjdk-jdk8-dev-latest-linux-x86_64-release.tar.xz
|
||||
tar xJvf openjdk-jdk8-dev-latest-linux-x86_64-release.tar.xz
|
||||
mv j2sdk-image jdk8dev
|
||||
popd
|
||||
fi
|
||||
if [ ! -d $BASEDIR/ap ];
|
||||
then
|
||||
./fetch_ap.sh
|
||||
fi
|
||||
if [ ! -f $BASEDIR/dd-java-agent.jar ];
|
||||
then
|
||||
./fetch_dd.sh
|
||||
fi
|
||||
echo "Building spring-petclinic"
|
||||
cd $BASEDIR/spring-petclinic
|
||||
export JAVA_HOME=$BASEDIR/jdk/zulu8.46.0.19-ca-jdk8.0.252-linux_x64
|
||||
./mvnw package -DskipTests=true
|
22
scripts/inject.sh
Executable file
22
scripts/inject.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
URL=localhost:8080/vets.html
|
||||
if [ "$"1 == "" ];
|
||||
then
|
||||
echo "Missing result filename"
|
||||
exit 1
|
||||
fi
|
||||
RESULTS=$1
|
||||
echo "starttransfer,total" > ${RESULTS}
|
||||
echo "Warmup..."
|
||||
for i in {1..1000}
|
||||
do
|
||||
curl -s -o /dev/null $URL
|
||||
done
|
||||
echo "Measure..."
|
||||
date +%H:%M:%S
|
||||
for i in {1..1000}
|
||||
do
|
||||
curl -w "%{time_starttransfer},%{time_total}\n" -s -o /dev/null $URL >> ${RESULTS}
|
||||
sleep 0.01
|
||||
done
|
||||
date +%H:%M:%S
|
41
scripts/percentiles.py
Normal file
41
scripts/percentiles.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
import sys
|
||||
|
||||
output_filename = sys.argv[1]
|
||||
input_files = sys.argv[2:]
|
||||
|
||||
|
||||
def get_percentile(percentile, values):
|
||||
count = len(values)
|
||||
return values[int(count * percentile)]
|
||||
|
||||
|
||||
latencies = []
|
||||
percentiles = []
|
||||
with open(output_filename, "w") as output_file:
|
||||
output_file.write(','.join(input_files) + '\n')
|
||||
for input_filename in input_files:
|
||||
with open(input_filename) as input_file:
|
||||
for line in input_file:
|
||||
cols = line.split(',')
|
||||
if cols[0] == "starttransfer": # header
|
||||
continue
|
||||
latencies.append(cols[0])
|
||||
latencies.sort()
|
||||
percentile_dist = [get_percentile(0.1, latencies),
|
||||
get_percentile(0.2, latencies),
|
||||
get_percentile(0.3, latencies),
|
||||
get_percentile(0.4, latencies),
|
||||
get_percentile(0.5, latencies),
|
||||
get_percentile(0.6, latencies),
|
||||
get_percentile(0.7, latencies),
|
||||
get_percentile(0.8, latencies),
|
||||
get_percentile(0.9, latencies),
|
||||
get_percentile(0.95, latencies),
|
||||
get_percentile(0.99, latencies)]
|
||||
percentiles.append(percentile_dist)
|
||||
for percentile_no in range(11): # number of percentiles
|
||||
line_values = []
|
||||
for input_no in range(len(percentiles)):
|
||||
line_values.append(percentiles[input_no][percentile_no])
|
||||
line = ','.join(line_values) + '\n'
|
||||
output_file.write(line)
|
30
scripts/start.sh
Executable file
30
scripts/start.sh
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/bin/bash
|
||||
OPTIONS=""
|
||||
if [ "$1" == "ap" ];
|
||||
then
|
||||
OPTIONS="-agentpath:../../ap/build/libasyncProfiler.so=start,collapsed,file=petclinic_collapsed.txt"
|
||||
fi
|
||||
if [ "$1" == "jfr" ];
|
||||
then
|
||||
OPTIONS="-XX:StartFlightRecording=filename=petclinic.jfr,dumponexit=true"
|
||||
fi
|
||||
if [ "$1" == "dd" ];
|
||||
then
|
||||
OPTIONS="-javaagent:../../dd-java-agent.jar -Ddd.profiling.enabled=true -Ddd.profiling.api-key-file=../../profiling-api-key -Ddd.trace.enabled=false"
|
||||
fi
|
||||
if [ "$2" == "zulu8" ];
|
||||
then
|
||||
export JAVA_HOME=../../jdk/zulu8.46.0.19-ca-jdk8.0.252-linux_x64
|
||||
fi
|
||||
if [ "$2" == "jdk8dev" ];
|
||||
then
|
||||
export JAVA_HOME=../../jdk/jdk8dev
|
||||
fi
|
||||
if [ "$2" == "" ];
|
||||
then
|
||||
export JAVA_HOME=../../jdk/jdk-11.0.7+10
|
||||
fi
|
||||
export PATH=$PATH:$JAVA_HOME/bin
|
||||
$JAVA_HOME/bin/java ${OPTIONS} \
|
||||
-DnbThreads=200 \
|
||||
-jar ../target/spring-petclinic-2.2.0.BUILD-SNAPSHOT.jar > out_petclinic.txt
|
|
@ -19,6 +19,11 @@ package org.springframework.samples.petclinic;
|
|||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.LockSupport;
|
||||
|
||||
/**
|
||||
* PetClinic Spring Boot Application.
|
||||
*
|
||||
|
@ -28,7 +33,30 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||
@SpringBootApplication(proxyBeanMethods = false)
|
||||
public class PetClinicApplication {
|
||||
|
||||
private static final int NB_THREADS = Integer.getInteger("nbThreads", 0);
|
||||
|
||||
private static ExecutorService executor;
|
||||
|
||||
private static void fibo50() {
|
||||
fibo(50);
|
||||
}
|
||||
|
||||
private static int fibo(int n) {
|
||||
if (n == 1) {
|
||||
LockSupport.parkNanos(TimeUnit.MINUTES.toNanos(30));
|
||||
}
|
||||
return fibo(n - 1);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (NB_THREADS > 0) {
|
||||
executor = Executors.newFixedThreadPool(NB_THREADS);
|
||||
System.out.printf("Thread pools created with %d\n", NB_THREADS);
|
||||
for (int i = 0; i < NB_THREADS; i++) {
|
||||
executor.submit(PetClinicApplication::fibo50);
|
||||
}
|
||||
System.out.println("Thread created");
|
||||
}
|
||||
SpringApplication.run(PetClinicApplication.class, args);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ public interface VetRepository extends Repository<Vet, Integer> {
|
|||
* @return a <code>Collection</code> of <code>Vet</code>s
|
||||
*/
|
||||
@Transactional(readOnly = true)
|
||||
@Cacheable("vets")
|
||||
// @Cacheable("vets") // not cacheable for benchmark pruposes
|
||||
Collection<Vet> findAll() throws DataAccessException;
|
||||
|
||||
}
|
||||
|
|
6047
src/main/resources/db/h2/data.1Kvets.sql
Normal file
6047
src/main/resources/db/h2/data.1Kvets.sql
Normal file
File diff suppressed because it is too large
Load diff
12047
src/main/resources/db/h2/data.2Kvets.sql
Normal file
12047
src/main/resources/db/h2/data.2Kvets.sql
Normal file
File diff suppressed because it is too large
Load diff
18047
src/main/resources/db/h2/data.3Kvets.sql
Normal file
18047
src/main/resources/db/h2/data.3Kvets.sql
Normal file
File diff suppressed because it is too large
Load diff
53
src/main/resources/db/h2/data.orig.sql
Normal file
53
src/main/resources/db/h2/data.orig.sql
Normal file
|
@ -0,0 +1,53 @@
|
|||
INSERT INTO vets VALUES (1, 'James', 'Carter');
|
||||
INSERT INTO vets VALUES (2, 'Helen', 'Leary');
|
||||
INSERT INTO vets VALUES (3, 'Linda', 'Douglas');
|
||||
INSERT INTO vets VALUES (4, 'Rafael', 'Ortega');
|
||||
INSERT INTO vets VALUES (5, 'Henry', 'Stevens');
|
||||
INSERT INTO vets VALUES (6, 'Sharon', 'Jenkins');
|
||||
|
||||
INSERT INTO specialties VALUES (1, 'radiology');
|
||||
INSERT INTO specialties VALUES (2, 'surgery');
|
||||
INSERT INTO specialties VALUES (3, 'dentistry');
|
||||
|
||||
INSERT INTO vet_specialties VALUES (2, 1);
|
||||
INSERT INTO vet_specialties VALUES (3, 2);
|
||||
INSERT INTO vet_specialties VALUES (3, 3);
|
||||
INSERT INTO vet_specialties VALUES (4, 2);
|
||||
INSERT INTO vet_specialties VALUES (5, 1);
|
||||
|
||||
INSERT INTO types VALUES (1, 'cat');
|
||||
INSERT INTO types VALUES (2, 'dog');
|
||||
INSERT INTO types VALUES (3, 'lizard');
|
||||
INSERT INTO types VALUES (4, 'snake');
|
||||
INSERT INTO types VALUES (5, 'bird');
|
||||
INSERT INTO types VALUES (6, 'hamster');
|
||||
|
||||
INSERT INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023');
|
||||
INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749');
|
||||
INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763');
|
||||
INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198');
|
||||
INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765');
|
||||
INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654');
|
||||
INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387');
|
||||
INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683');
|
||||
INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435');
|
||||
INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487');
|
||||
|
||||
INSERT INTO pets VALUES (1, 'Leo', '2010-09-07', 1, 1);
|
||||
INSERT INTO pets VALUES (2, 'Basil', '2012-08-06', 6, 2);
|
||||
INSERT INTO pets VALUES (3, 'Rosy', '2011-04-17', 2, 3);
|
||||
INSERT INTO pets VALUES (4, 'Jewel', '2010-03-07', 2, 3);
|
||||
INSERT INTO pets VALUES (5, 'Iggy', '2010-11-30', 3, 4);
|
||||
INSERT INTO pets VALUES (6, 'George', '2010-01-20', 4, 5);
|
||||
INSERT INTO pets VALUES (7, 'Samantha', '2012-09-04', 1, 6);
|
||||
INSERT INTO pets VALUES (8, 'Max', '2012-09-04', 1, 6);
|
||||
INSERT INTO pets VALUES (9, 'Lucky', '2011-08-06', 5, 7);
|
||||
INSERT INTO pets VALUES (10, 'Mulligan', '2007-02-24', 2, 8);
|
||||
INSERT INTO pets VALUES (11, 'Freddy', '2010-03-09', 5, 9);
|
||||
INSERT INTO pets VALUES (12, 'Lucky', '2010-06-24', 2, 10);
|
||||
INSERT INTO pets VALUES (13, 'Sly', '2012-06-08', 1, 10);
|
||||
|
||||
INSERT INTO visits VALUES (1, 7, '2013-01-01', 'rabies shot');
|
||||
INSERT INTO visits VALUES (2, 8, '2013-01-02', 'rabies shot');
|
||||
INSERT INTO visits VALUES (3, 8, '2013-01-03', 'neutered');
|
||||
INSERT INTO visits VALUES (4, 7, '2013-01-04', 'spayed');
|
File diff suppressed because it is too large
Load diff
6047
src/main/resources/db/hsqldb/data.1Kvets.sql
Normal file
6047
src/main/resources/db/hsqldb/data.1Kvets.sql
Normal file
File diff suppressed because it is too large
Load diff
53
src/main/resources/db/hsqldb/data.orig.sql
Normal file
53
src/main/resources/db/hsqldb/data.orig.sql
Normal file
|
@ -0,0 +1,53 @@
|
|||
INSERT INTO vets VALUES (1, 'James', 'Carter');
|
||||
INSERT INTO vets VALUES (2, 'Helen', 'Leary');
|
||||
INSERT INTO vets VALUES (3, 'Linda', 'Douglas');
|
||||
INSERT INTO vets VALUES (4, 'Rafael', 'Ortega');
|
||||
INSERT INTO vets VALUES (5, 'Henry', 'Stevens');
|
||||
INSERT INTO vets VALUES (6, 'Sharon', 'Jenkins');
|
||||
|
||||
INSERT INTO specialties VALUES (1, 'radiology');
|
||||
INSERT INTO specialties VALUES (2, 'surgery');
|
||||
INSERT INTO specialties VALUES (3, 'dentistry');
|
||||
|
||||
INSERT INTO vet_specialties VALUES (2, 1);
|
||||
INSERT INTO vet_specialties VALUES (3, 2);
|
||||
INSERT INTO vet_specialties VALUES (3, 3);
|
||||
INSERT INTO vet_specialties VALUES (4, 2);
|
||||
INSERT INTO vet_specialties VALUES (5, 1);
|
||||
|
||||
INSERT INTO types VALUES (1, 'cat');
|
||||
INSERT INTO types VALUES (2, 'dog');
|
||||
INSERT INTO types VALUES (3, 'lizard');
|
||||
INSERT INTO types VALUES (4, 'snake');
|
||||
INSERT INTO types VALUES (5, 'bird');
|
||||
INSERT INTO types VALUES (6, 'hamster');
|
||||
|
||||
INSERT INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023');
|
||||
INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749');
|
||||
INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763');
|
||||
INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198');
|
||||
INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765');
|
||||
INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654');
|
||||
INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387');
|
||||
INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683');
|
||||
INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435');
|
||||
INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487');
|
||||
|
||||
INSERT INTO pets VALUES (1, 'Leo', '2010-09-07', 1, 1);
|
||||
INSERT INTO pets VALUES (2, 'Basil', '2012-08-06', 6, 2);
|
||||
INSERT INTO pets VALUES (3, 'Rosy', '2011-04-17', 2, 3);
|
||||
INSERT INTO pets VALUES (4, 'Jewel', '2010-03-07', 2, 3);
|
||||
INSERT INTO pets VALUES (5, 'Iggy', '2010-11-30', 3, 4);
|
||||
INSERT INTO pets VALUES (6, 'George', '2010-01-20', 4, 5);
|
||||
INSERT INTO pets VALUES (7, 'Samantha', '2012-09-04', 1, 6);
|
||||
INSERT INTO pets VALUES (8, 'Max', '2012-09-04', 1, 6);
|
||||
INSERT INTO pets VALUES (9, 'Lucky', '2011-08-06', 5, 7);
|
||||
INSERT INTO pets VALUES (10, 'Mulligan', '2007-02-24', 2, 8);
|
||||
INSERT INTO pets VALUES (11, 'Freddy', '2010-03-09', 5, 9);
|
||||
INSERT INTO pets VALUES (12, 'Lucky', '2010-06-24', 2, 10);
|
||||
INSERT INTO pets VALUES (13, 'Sly', '2012-06-08', 1, 10);
|
||||
|
||||
INSERT INTO visits VALUES (1, 7, '2013-01-01', 'rabies shot');
|
||||
INSERT INTO visits VALUES (2, 8, '2013-01-02', 'rabies shot');
|
||||
INSERT INTO visits VALUES (3, 8, '2013-01-03', 'neutered');
|
||||
INSERT INTO visits VALUES (4, 7, '2013-01-04', 'spayed');
|
File diff suppressed because it is too large
Load diff
|
@ -193,7 +193,7 @@ class ClinicServiceTests {
|
|||
Collection<Vet> vets = this.vets.findAll();
|
||||
|
||||
Vet vet = EntityUtils.getById(vets, Vet.class, 3);
|
||||
assertThat(vet.getLastName()).isEqualTo("Douglas");
|
||||
assertThat(vet.getLastName()).startsWith("Douglas");
|
||||
assertThat(vet.getNrOfSpecialties()).isEqualTo(2);
|
||||
assertThat(vet.getSpecialties().get(0).getName()).isEqualTo("dentistry");
|
||||
assertThat(vet.getSpecialties().get(1).getName()).isEqualTo("surgery");
|
||||
|
|
Loading…
Reference in a new issue