RESULTS
============================================================================
cd $WK ; cp /var/tmp/ma0/DEFS/metabuilder.def .
time Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
submitted 4553 out of 4559

real    0m2.22s
user    0m1.82s
sys     0m0.39s
 


strace -c Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
submitted 4553 out of 4559
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 32.97    0.098267           1    163674           read
 15.05    0.044856           1     41404           write
 13.59    0.040501           1     73919           lseek
 11.46    0.034150           3     10760        17 open
 10.51    0.031337           3     10742           close
  9.67    0.028827           1     31948     12134 stat
  2.40    0.007139           2      4553           chmod
  1.88    0.005617           1      4555           munmap
  1.41    0.004200           1      4578           mmap
  0.89    0.002646           1      4563           fstat
  0.11    0.000334           1       243           brk
  0.06    0.000193           4        51           writev
  0.00    0.000000           0         2         1 lstat
  0.00    0.000000           0        14           mprotect
  0.00    0.000000           0         3           rt_sigaction
  0.00    0.000000           0         4           rt_sigprocmask
  0.00    0.000000           0         1         1 access
  0.00    0.000000           0         1           execve
  0.00    0.000000           0         1           uname
  0.00    0.000000           0         1           unlink
  0.00    0.000000           0         1           getrlimit
  0.00    0.000000           0         1           arch_prctl
  0.00    0.000000           0         2           futex
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         1           set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00    0.298067                351023     12153 total


# baseline
perf stat -r 10 -d Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
 Performance counter stats for 'Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def' (10 runs):

       2637.099995      task-clock (msec)         #    0.996 CPUs utilized            ( +-  2.31% )
               218      context-switches          #    0.083 K/sec                    ( +- 74.32% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +-100.00% )
             9,658      page-faults               #    0.004 M/sec                    ( +-  0.00% )
    10,122,555,334      cycles                    #    3.839 GHz                      ( +-  2.30% )  (49.94%)
   <not supported>      stalled-cycles-frontend
   <not supported>      stalled-cycles-backend
    12,804,414,325      instructions              #    1.26  insns per cycle          ( +-  0.10% )  (62.47%)
     3,209,766,689      branches                  # 1217.158 M/sec                    ( +-  0.07% )  (62.49%)
       121,179,840      branch-misses             #    3.78% of all branches          ( +-  0.47% )  (62.53%)
     3,061,094,579      L1-dcache-loads           # 1160.781 M/sec                    ( +-  0.10% )  (62.23%)
       274,551,085      L1-dcache-load-misses     #    8.97% of all L1-dcache hits    ( +-  0.44% )  (25.03%)
        87,217,818      LLC-loads                 #   33.073 M/sec                    ( +-  1.71% )  (25.04%)
         1,055,192      LLC-load-misses           #    1.21% of all LL-cache hits     ( +-  5.56% )  (37.50%)

       2.647587094 seconds time elapsed                                          ( +-  2.27% )
       
       
# move check for holding day/date to where we check for time dependencies. Avoid redundant class, and reuse calendar
git develop/55f9b8c6fae
perf stat -r 10 -d Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
 Performance counter stats for 'Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def' (10 runs):

       2569.686692      task-clock (msec)         #    0.997 CPUs utilized            ( +-  0.99% )
                71      context-switches          #    0.028 K/sec                    ( +- 21.34% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 66.67% )
             9,658      page-faults               #    0.004 M/sec                    ( +-  0.00% )
     9,868,102,965      cycles                    #    3.840 GHz                      ( +-  1.04% )  (49.95%)
   <not supported>      stalled-cycles-frontend
   <not supported>      stalled-cycles-backend
    12,801,757,236      instructions              #    1.30  insns per cycle          ( +-  0.08% )  (62.50%)
     3,210,290,124      branches                  # 1249.292 M/sec                    ( +-  0.05% )  (62.52%)
       122,763,538      branch-misses             #    3.82% of all branches          ( +-  0.23% )  (62.58%)
     3,061,292,518      L1-dcache-loads           # 1191.310 M/sec                    ( +-  0.09% )  (62.24%)
       274,899,137      L1-dcache-load-misses     #    8.98% of all L1-dcache hits    ( +-  0.31% )  (24.99%)
        88,426,942      LLC-loads                 #   34.412 M/sec                    ( +-  0.98% )  (25.02%)
           998,813      LLC-load-misses           #    1.13% of all LL-cache hits     ( +-  4.56% )  (37.47%)

       2.576901973 seconds time elapsed                                          ( +-  0.97% )


# Only loop over job line once, when removing comment/manual and job lines
git develop/c1875ca6f5e
perf stat -r 10 -d Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
 Performance counter stats for 'Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def' (10 runs):

       2439.205537      task-clock (msec)         #    0.991 CPUs utilized            ( +-  0.82% )
                81      context-switches          #    0.033 K/sec                    ( +- 23.79% )
                 0      cpu-migrations            #    0.000 K/sec                    ( +- 50.92% )
             9,658      page-faults               #    0.004 M/sec                    ( +-  0.00% )
     9,346,162,727      cycles                    #    3.832 GHz                      ( +-  0.92% )  (49.94%)
   <not supported>      stalled-cycles-frontend
   <not supported>      stalled-cycles-backend
    12,409,439,249      instructions              #    1.33  insns per cycle          ( +-  0.09% )  (62.47%)
     3,107,965,124      branches                  # 1274.171 M/sec                    ( +-  0.04% )  (62.53%)
       116,968,249      branch-misses             #    3.76% of all branches          ( +-  0.19% )  (62.60%)
     2,976,484,027      L1-dcache-loads           # 1220.268 M/sec                    ( +-  0.08% )  (62.25%)
       268,221,140      L1-dcache-load-misses     #    9.01% of all L1-dcache hits    ( +-  0.23% )  (24.99%)
        88,439,925      LLC-loads                 #   36.258 M/sec                    ( +-  0.86% )  (25.00%)
         1,011,364      LLC-load-misses           #    1.14% of all LL-cache hits     ( +-  5.26% )  (37.46%)

       2.461374810 seconds time elapsed                                          ( +-  0.82% )


# Use std::move() to avoid string copy, when processing job lines, remove dangling string reference
git develop/e0bab94495c,d77fa0e7424

perf stat -r 10 -d Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def
 Performance counter stats for 'Base/bin/gcc-7.3.0/release/perf_job_gen ./metabuilder.def' (10 runs):

       2252.060052      task-clock (msec)         #    0.997 CPUs utilized            ( +-  0.21% )
                59      context-switches          #    0.026 K/sec                    ( +-  3.66% )
                 0      cpu-migrations            #    0.000 K/sec
             9,656      page-faults               #    0.004 M/sec                    ( +-  0.00% )
     8,655,849,508      cycles                    #    3.844 GHz                      ( +-  0.22% )  (50.03%)
   <not supported>      stalled-cycles-frontend
   <not supported>      stalled-cycles-backend
    11,243,970,572      instructions              #    1.30  insns per cycle          ( +-  0.05% )  (62.57%)
     2,815,604,290      branches                  # 1250.235 M/sec                    ( +-  0.03% )  (62.60%)
       108,327,891      branch-misses             #    3.85% of all branches          ( +-  0.09% )  (62.59%)
     2,760,671,220      L1-dcache-loads           # 1225.843 M/sec                    ( +-  0.06% )  (62.16%)
       258,914,707      L1-dcache-load-misses     #    9.38% of all L1-dcache hits    ( +-  0.16% )  (24.95%)
        87,798,314      LLC-loads                 #   38.986 M/sec                    ( +-  0.93% )  (25.05%)
           952,271      LLC-load-misses           #    1.08% of all LL-cache hits     ( +-  4.52% )  (37.53%)

       2.259696222 seconds time elapsed                                          ( +-  0.20% )

 