PeASS requires that the analyzed project is written in Java, has JUnit tests, is built by maven and managed by git
Download Docker
$ sudo apt install docker.ioMake sure Docker is installed
Run $ docker -v. You should be getting something like this:
Docker version 19.03.13, build 4484c46d9d
Pull this image by running $ docker pull mihalbsh/peass:peass
Start Container
$ docker run --name peass -i -t mihalbsh/peass:peass $ docker start -i -a peass$ exit to pause the container for now, that should bring you back to the host terminal-cmdSend the project you want to analyze to the container
$ docker cp FOLDER_PATH peass:home/DaGeRe. For Example $ docker cp users/user1/Desktop/demo_project peass:home/DaGeReRun Peass to analyze the target folder
$ docker start -i -a peass$ exitGet Results
$ docker cp peass:home/DaGeRe/peass/results LOCAL_PATH for example $ docker cp peass:home/DaGeRe/peass/results users/user1/Desktop/demo_projectUse sudo if unix requires permissions
Use this Small Demo Project to test
Example for a project called demo1
Executing the Regression Test Selection
$ ./peass select -folder ../demo1 (Could also run it for specific commits to make the process faster)Executing the Measurement and Getting the Changes
$ ./peass measure -executionfile results/execute_demo1.json -folder ../demo1 -iterations 1 -warmup 0 -repetitions 1 -vms 2$ ./peass getchanges -data ../demo1_peass/ -dependencyfile results/deps_demo1.jsonExecuting the Root Cause Analysis
Pick one of the commits that contain performance regression (generated by the previous commands). Let's pick commit with hash: 9caed514e0759dbfa4ef29acca78787e34d99975
$ ./peass searchcause -vms 2 -iterations 1 -warmup 0 -version 9caed514e0759dbfa4ef29acca78787e34d99975 -test de.test.CalleeTest#onlyCallMethod1 -folder ../demo1 -executionfile results/execute_demo1.json./peass visualizerca -data ../demo1_peass/ -propertyFolder results/properties_demo1/The top corner tracks the regression. It originated from the callee test, which called method 1 which calls the inner method. And you can see on the bottom right corner the inner method before and after the regression. Before it slept for 5ms, after for 15ms which made it "slower".
Content type
Image
Digest
Size
348.8 MB
Last updated
almost 6 years ago
docker pull mihalbsh/peass:peass