ADT
        ast-experimental
      
      
        
          | 
            Last change
 on this file since 78e2fca 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.