Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Requirements

  • Python 3;
  • jq (check here the project);
  • Perf:
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`

Project Documentation

Next, we document the project structure.

  • run-base: provides a skeleton of how your experiments should be structured. The file is well documented and provides freedom to fully customize the experiments;
  • perf-capture: profiles the application using perf record, convert the file to TXT using perf script, and convert the file to CSV, reducing storage space required;
Usage: ./perf-capture.sh [-n experiment-name] [-r runs] [-f frequency] [-o output-directory] [-c command]
  -n, --name               Experiment name.
  -r, --runs               Number of times experiment will run.
  -f, --frequency          Number of samples to capture per second. Default: 997 samples/second.
  -o, --output             Directory where perf logs will be saved.
  -c, --command            Command that triggers the experiment.

Example: ./perf-capture.sh --name "Experiment XX" --runs 5 --frequency 997 --output ./output/experiment-xx -c "sleep 10"
  • events.txt: defines which events perf record will monitor. We can see the events available on your architecture using perf list;
  • parser/perf_script2csv.py: parse data from TXT to CSV;
python3 parser/perf_script2csv.py --input data.txt

You can see an example of the TXT file here and an example of CSV file here.

  • parser/parser.py: creates the JSON file to be uploaded in the VisPerf visualization dashboard;
python3 parser/parser.py --input config.json --output experiments.json

You can see an example of the config.json file here and an example of the experiments.json file here.