source: tests/zombies/string-perf/make-flamegraph.sh @ 8463136

ast-experimental
Last change on this file since 8463136 was 08ed947, checked in by Michael Brooks <mlbrooks@…>, 3 years ago

Roll up of string changes for performance testing/improvement, and a couple API features supporting them.

String API changes:
Defining a tuning knob to control the heap growth policy (relapaces former 10% hardcode, downgraded to a default)
Implementing findFrom (allowing find-non-first); leaving find as find-first.

String implementation perf improvements:
Calling C-malloc directly instead of via CFA-alloc.
Replacings loops that copy with memmove calls.
Replacings loops that search for a value with memchr calls.

String perf testing realized:
Makefile supporting several prog-*.cfa, chosen by OPERATION value (implies prog.cfa changes to support the adjusted protocol)
Adjusting the starter/accumulater declarations in PEQ and PTA to behave consistently in cfa v cpp.
Adding tests: allocation, find, normalize, pass-by-val, pass-by-x.
Adding helper shell scripts for: generating flame graphs, collecting/crunching allocation stats using Mubeen's malloc wrappers

  • Property mode set to 100755
File size: 772 bytes
RevLine 
[08ed947]1#!/bin/bash
2
3# $1 is SUT id     : stl-pall-na-na-na
4# $2 is CLI middle : 1000 1.006 0.1 -w 10000000
5# $3 is corpus id  : -1-500-1  (goes with corpus-1-500-1.txt)
6#
7# usage for that example:   ./make-flamegraph.sh cfa-pall-ll-share-na '1000 1.006 0.1 -w 10000000' -1-500-1
8#
9# another
10# $3 is coprus id  : x-100-20-1  (goes with corpusx-100-20-1.txt)
11
12SLUG=perf--$1--${2//[ .]/-}--$3
13
14perf record --call-graph dwarf -m16M ~/plg2/cfa2/cfa-cc/tests/zombies/string-perf/perfexp-$1 $2 `cat ~/plg2/cfa2/cfa-cc/tests/zombies/string-perf/corpus$3.txt`
15
16mv perf.data $SLUG.data
17perf script -i $SLUG.data > $SLUG.perf
18../flamegraph/FlameGraph/stackcollapse-perf.pl $SLUG.perf > $SLUG.folded
19../flamegraph/FlameGraph/flamegraph.pl $SLUG.folded > $SLUG.svg
20cp $SLUG.svg ~/plg2/flames
Note: See TracBrowser for help on using the repository browser.