| Last change
 on this file since 9ddcee1 was             08ed947, checked in by Michael Brooks <mlbrooks@…>, 4 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 | 
      
      
| Line |  | 
|---|
| 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 |  | 
|---|
| 12 | SLUG=perf--$1--${2//[ .]/-}--$3 | 
|---|
| 13 |  | 
|---|
| 14 | perf 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 |  | 
|---|
| 16 | mv perf.data $SLUG.data | 
|---|
| 17 | perf 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 | 
|---|
| 20 | cp $SLUG.svg ~/plg2/flames | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.