Small file (~1MB)

Regular expression: a

chen@linux-mint ~/icgrep-test $ sudo perf stat egrep a shakespeare.txt > /dev/null 

 Performance counter stats for 'egrep a shakespeare.txt':

         34.751108      task-clock (msec)         #    0.774 CPUs utilized          
                 2      context-switches          #    0.058 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               147      page-faults               #    0.004 M/sec                  
        47,088,508      cycles                    #    1.355 GHz                    
        73,603,609      instructions              #    1.56  insn per cycle         
        16,259,083      branches                  #  467.872 M/sec                  
           734,982      branch-misses             #    4.52% of all branches        

       0.044886438 seconds time elapsed

chen@linux-mint ~/icgrep-test $ sudo perf stat icgrep a shakespeare.txt > /dev/null 

 Performance counter stats for 'icgrep a shakespeare.txt':

         51.828200      task-clock (msec)         #    0.993 CPUs utilized          
                 0      context-switches          #    0.000 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
             4,789      page-faults               #    0.092 M/sec                  
       134,203,227      cycles                    #    2.589 GHz                    
       168,691,400      instructions              #    1.26  insn per cycle         
        20,615,240      branches                  #  397.761 M/sec                  
           559,470      branch-misses             #    2.71% of all branches        

       0.052197447 seconds time elapsed

Regular expression: [a-z]{5}

chen@linux-mint ~/icgrep-test $ sudo perf stat egrep [a-z]{5} shakespeare.txt > /dev/null 

 Performance counter stats for 'egrep [a-z]{5} shakespeare.txt':

          1.731169      task-clock (msec)         #    0.006 CPUs utilized          
                 0      context-switches          #    0.000 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               153      page-faults               #    0.088 M/sec                  
       841,906,957      cycles                    #  486.323 GHz                    
     2,624,315,941      instructions              #    3.12  insn per cycle         
       489,663,823      branches                  # 282851.543 M/sec                
         2,635,155      branch-misses             #    0.54% of all branches        

       0.289743388 seconds time elapsed

chen@linux-mint ~/icgrep-test $ sudo perf stat icgrep [a-z]{5} shakespeare.txt > /dev/null 

 Performance counter stats for 'icgrep [a-z]{5} shakespeare.txt':

         48.597465      task-clock (msec)         #    0.993 CPUs utilized          
                 1      context-switches          #    0.021 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
             5,372      page-faults               #    0.111 M/sec                  
       131,334,609      cycles                    #    2.702 GHz                    
       171,955,468      instructions              #    1.31  insn per cycle         
        21,016,285      branches                  #  432.456 M/sec                  
           552,602      branch-misses             #    2.63% of all branches        

       0.048949126 seconds time elapsed

Regular expression: [a-z]{5}.{3}[a-z]{3}

chen@linux-mint ~/icgrep-test $ sudo perf stat egrep [a-z]{5}.{3}[a-z]{3} shakespeare.txt > /dev/null 

 Performance counter stats for 'egrep [a-z]{5}.{3}[a-z]{3} shakespeare.txt':

        345.683858      task-clock (msec)         #    0.859 CPUs utilized          
                 7      context-switches          #    0.020 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               164      page-faults               #    0.474 K/sec                  
     1,327,717,404      cycles                    #    3.841 GHz                    
     4,277,835,469      instructions              #    3.22  insn per cycle         
       770,242,398      branches                  # 2228.170 M/sec                  
         4,773,418      branch-misses             #    0.62% of all branches        

       0.402300078 seconds time elapsed

chen@linux-mint ~/icgrep-test $ sudo perf stat icgrep [a-z]{5}.{3}[a-z]{3} shakespeare.txt > /dev/null 

 Performance counter stats for 'icgrep [a-z]{5}.{3}[a-z]{3} shakespeare.txt':

        136.905385      task-clock (msec)         #    0.992 CPUs utilized          
                 0      context-switches          #    0.000 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
             4,203      page-faults               #    0.031 M/sec                  
       398,493,265      cycles                    #    2.911 GHz                    
       634,041,240      instructions              #    1.59  insn per cycle         
       116,634,833      branches                  #  851.938 M/sec                  
         2,948,274      branch-misses             #    2.53% of all branches        

       0.138023968 seconds time elapsed

Large directory (~300MB)

Regular expression: a


chen@linux-mint ~ $ sudo perf stat egrep -r a Software > /dev/null 

 Performance counter stats for 'egrep -r a Software':

        418.987636      task-clock (msec)         #    0.933 CPUs utilized          
                23      context-switches          #    0.055 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               209      page-faults               #    0.499 K/sec                  
     1,414,261,723      cycles                    #    3.375 GHz                    
     2,255,315,733      instructions              #    1.59  insn per cycle         
       495,177,576      branches                  # 1181.843 M/sec                  
        21,934,331      branch-misses             #    4.43% of all branches        

       0.449145090 seconds time elapsed

chen@linux-mint ~ $ sudo perf stat icgrep -r a Software > /dev/null 

 Performance counter stats for 'icgrep -r a Software':

       1984.806666      task-clock (msec)         #    1.928 CPUs utilized          
             1,796      context-switches          #    0.905 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
           129,587      page-faults               #    0.065 M/sec                  
     6,335,039,741      cycles                    #    3.192 GHz                    
     7,854,923,534      instructions              #    1.24  insn per cycle         
       426,081,661      branches                  #  214.672 M/sec                  
         6,821,096      branch-misses             #    1.60% of all branches        

       1.029624264 seconds time elapsed

Regular expression: [a-z]{5}

chen@linux-mint ~ $ sudo perf stat egrep -r [a-z]{5} Software > /dev/null 

 Performance counter stats for 'egrep -r [a-z]{5} Software':

       7356.348770      task-clock (msec)         #    0.997 CPUs utilized          
                15      context-switches          #    0.002 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               222      page-faults               #    0.030 K/sec                  
    22,202,714,706      cycles                    #    3.018 GHz                    
    67,906,282,784      instructions              #    3.06  insn per cycle         
    13,106,640,070      branches                  # 1781.677 M/sec                  
        62,660,107      branch-misses             #    0.48% of all branches        

       7.376756472 seconds time elapsed

chen@linux-mint ~ $ sudo perf stat icgrep -r [a-z]{5} Software > /dev/null 

 Performance counter stats for 'icgrep -r [a-z]{5} Software':

       2067.083783      task-clock (msec)         #    1.835 CPUs utilized          
             2,369      context-switches          #    0.001 M/sec                  
                 6      cpu-migrations            #    0.003 K/sec                  
           126,644      page-faults               #    0.061 M/sec                  
     6,468,864,722      cycles                    #    3.129 GHz                    
     8,105,450,876      instructions              #    1.25  insn per cycle         
       458,190,283      branches                  #  221.660 M/sec                  
         7,051,252      branch-misses             #    1.54% of all branches        

       1.126515881 seconds time elapsed