oilshell.org
    
OSH Runtime Performance
Source code: benchmarks/osh-runtime.sh
Raw files
Elapsed Time by Shell (milliseconds)
Some benchmarks call many external tools, while some exercise the shell
interpreter itself.
  
    
    | workload | 
    host name | 
    bash | 
    dash | 
    osh-cpython | 
    osh-native | 
    py bash ratio | 
    native bash ratio | 
    
  
  
    
      |  abuild-print-help  | 
       no-host  | 
       19  | 
       10  | 
       453  | 
       23  | 
       23.29  | 
       1.16  | 
    
    
      |  bin-true  | 
       no-host  | 
       672  | 
       560  | 
       2,262  | 
       827  | 
       3.37  | 
       1.23  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,188  | 
       15,303  | 
       28,814  | 
       15,377  | 
       1.90  | 
       1.01  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,852  | 
       3,819  | 
       4,729  | 
       3,885  | 
       1.23  | 
       1.01  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       49  | 
       42  | 
       195  | 
       49  | 
       4.01  | 
       1.02  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,223  | 
       15,061  | 
       31,575  | 
       14,421  | 
       2.22  | 
       1.01  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,887  | 
       1,796  | 
       2,485  | 
       1,854  | 
       1.32  | 
       0.98  | 
    
    
      |  hello-world  | 
       no-host  | 
       2  | 
       1  | 
       50  | 
       3  | 
       30.74  | 
       1.75  | 
    
  
  
    
    
    
    
    
    
    
    
  
Minor Page Faults
  
    
    | workload | 
    host name | 
    bash | 
    dash | 
    osh-cpython | 
    osh-native | 
    py bash ratio | 
    native bash ratio | 
    
  
  
    
      |  abuild-print-help  | 
       no-host  | 
       2,510  | 
       1,115  | 
       23,205  | 
       3,170  | 
       9.25  | 
       1.26  | 
    
    
      |  bin-true  | 
       no-host  | 
       105,346  | 
       66,476  | 
       750,045  | 
       129,133  | 
       7.12  | 
       1.23  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       2,217,310  | 
       2,245,804  | 
       6,149,920  | 
       2,235,909  | 
       2.77  | 
       1.01  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       410,886  | 
       391,201  | 
       637,976  | 
       414,297  | 
       1.55  | 
       1.01  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       6,538  | 
       5,507  | 
       23,234  | 
       6,996  | 
       3.55  | 
       1.07  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       2,100,795  | 
       2,258,919  | 
       5,324,272  | 
       2,007,267  | 
       2.53  | 
       0.96  | 
    
    
      |  configure.yash  | 
       no-host  | 
       255,458  | 
       244,381  | 
       384,339  | 
       257,765  | 
       1.50  | 
       1.01  | 
    
    
      |  hello-world  | 
       no-host  | 
       149  | 
       84  | 
       3,656  | 
       347  | 
       24.54  | 
       2.33  | 
    
  
  
    
    
    
    
    
    
    
    
  
Memory Usage (Max Resident Set Size in MB)
Memory usage is measured in MB (powers of 10), not MiB (powers of 2).
GC Stats
  
    
    | workload | 
    host name | 
    elapsed ms | 
    max gc millis | 
    total gc millis | 
    allocated MB | 
    max rss MB | 
    num allocated | 
    num live | 
    max survived | 
    num in heap | 
    num in pool 1 | 
    num in pool 2 | 
    num gc points | 
    num gc done | 
    gc threshold | 
    num growths | 
    
  
  
    
      |  hello-world  | 
       no-host  | 
       3  | 
       0  | 
       0  | 
       0.3  | 
       6.2  | 
       3,717  | 
       3,717  | 
       0  | 
       684  | 
       1,869  | 
       1,164  | 
       2  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  bin-true  | 
       no-host  | 
       827  | 
       1  | 
       2  | 
       2.7  | 
       7.9  | 
       154,682  | 
       12,988  | 
       2,795  | 
       11,737  | 
       78,338  | 
       64,607  | 
       5,012  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,377  | 
       1  | 
       61  | 
       15.8  | 
       27.3  | 
       1,772,598  | 
       49,193  | 
       28,504  | 
       101,770  | 
       908,045  | 
       762,783  | 
       42,399  | 
       60  | 
       50,000  | 
       0  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,421  | 
       3  | 
       59  | 
       22.2  | 
       30.0  | 
       2,703,262  | 
       44,762  | 
       65,788  | 
       126,121  | 
       1,320,489  | 
       1,256,652  | 
       49,081  | 
       41  | 
       131,576  | 
       1  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,885  | 
       1  | 
       2  | 
       2.7  | 
       20.4  | 
       150,024  | 
       11,041  | 
       5,134  | 
       8,602  | 
       71,623  | 
       69,799  | 
       2,680  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       49  | 
       0  | 
       0  | 
       1.3  | 
       19.3  | 
       30,517  | 
       30,517  | 
       0  | 
       1,599  | 
       14,793  | 
       14,125  | 
       350  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,854  | 
       1  | 
       2  | 
       2.6  | 
       24.5  | 
       139,681  | 
       7,960  | 
       6,596  | 
       7,554  | 
       70,295  | 
       61,832  | 
       2,990  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  abuild-print-help  | 
       no-host  | 
       23  | 
       1  | 
       2  | 
       2.8  | 
       9.0  | 
       116,260  | 
       64,451  | 
       42,659  | 
       4,609  | 
       54,538  | 
       57,113  | 
       478  | 
       3  | 
       85,318  | 
       1  | 
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  
rusage Details
  
    
    | task id | 
    host name | 
    workload | 
    elapsed ms | 
    user ms | 
    sys ms | 
    max rss MB | 
    shell label | 
    
  
  
    
      |  7  | 
       no-host  | 
       abuild-print-help  | 
       19  | 
       8  | 
       12  | 
       4.3  | 
       bash  | 
    
    
      |  15  | 
       no-host  | 
       abuild-print-help  | 
       10  | 
       6  | 
       4  | 
       3.5  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       453  | 
       418  | 
       38  | 
       21.6  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       23  | 
       11  | 
       12  | 
       9.0  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       672  | 
       492  | 
       212  | 
       3.0  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       560  | 
       416  | 
       152  | 
       1.4  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       2,262  | 
       1,459  | 
       1,069  | 
       17.3  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       827  | 
       580  | 
       261  | 
       7.9  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       15,188  | 
       9,223  | 
       6,356  | 
       27.3  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       15,303  | 
       9,134  | 
       6,591  | 
       27.4  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       28,814  | 
       17,214  | 
       13,438  | 
       27.5  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       15,377  | 
       8,930  | 
       6,718  | 
       27.3  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       3,852  | 
       1,669  | 
       1,208  | 
       20.6  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       3,819  | 
       1,583  | 
       1,254  | 
       20.6  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       4,729  | 
       2,254  | 
       1,683  | 
       20.6  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       3,885  | 
       1,675  | 
       1,244  | 
       20.4  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       49  | 
       30  | 
       19  | 
       19.4  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       42  | 
       27  | 
       15  | 
       19.3  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       195  | 
       146  | 
       52  | 
       19.4  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       49  | 
       22  | 
       28  | 
       19.3  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       14,223  | 
       8,927  | 
       5,764  | 
       30.1  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       15,061  | 
       9,186  | 
       6,352  | 
       30.0  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       31,575  | 
       20,969  | 
       11,726  | 
       30.0  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       14,421  | 
       8,889  | 
       5,725  | 
       30.0  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       1,887  | 
       1,069  | 
       825  | 
       24.4  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       1,796  | 
       1,017  | 
       782  | 
       24.4  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       2,485  | 
       1,554  | 
       975  | 
       24.4  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       1,854  | 
       1,037  | 
       821  | 
       24.5  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       2  | 
       2  | 
       0  | 
       2.6  | 
       bash  | 
    
    
      |  8  | 
       no-host  | 
       hello-world  | 
       1  | 
       1  | 
       0  | 
       1.6  | 
       dash  | 
    
    
      |  16  | 
       no-host  | 
       hello-world  | 
       50  | 
       25  | 
       24  | 
       17.3  | 
       osh-cpython  | 
    
    
      |  24  | 
       no-host  | 
       hello-world  | 
       3  | 
       3  | 
       0  | 
       6.2  | 
       osh-native  | 
    
  
  
    
    
    
    
    
    
    
    
  
More Details
  
    
    | task id | 
    host name | 
    workload | 
    minor faults | 
    major faults | 
    swaps | 
    in block | 
    out block | 
    signals | 
    voluntary ctx | 
    involuntary ctx | 
    shell label | 
    
  
  
    
      |  7  | 
       no-host  | 
       abuild-print-help  | 
       2,510  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       3  | 
       bash  | 
    
    
      |  15  | 
       no-host  | 
       abuild-print-help  | 
       1,115  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       39  | 
       1  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       23,205  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       47  | 
       8  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       3,170  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       2  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       105,346  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,993  | 
       45  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       66,476  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,983  | 
       187  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       750,045  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,989  | 
       174  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       129,133  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1,993  | 
       83  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       2,217,310  | 
       0  | 
       0  | 
       0  | 
       32,928  | 
       0  | 
       14,489  | 
       1,104  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       2,245,804  | 
       0  | 
       0  | 
       0  | 
       32,992  | 
       0  | 
       14,568  | 
       1,325  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       6,149,920  | 
       0  | 
       0  | 
       0  | 
       27,512  | 
       0  | 
       13,274  | 
       1,298  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       2,235,909  | 
       0  | 
       0  | 
       0  | 
       27,520  | 
       0  | 
       13,300  | 
       1,165  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       410,886  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,957  | 
       182  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       391,201  | 
       0  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,933  | 
       158  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       637,976  | 
       0  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,861  | 
       190  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       414,297  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,935  | 
       176  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       6,538  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       48  | 
       7  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       5,507  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       47  | 
       1  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       23,234  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       53  | 
       7  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       6,996  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       47  | 
       1  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       2,100,795  | 
       0  | 
       0  | 
       0  | 
       42,408  | 
       0  | 
       18,559  | 
       1,106  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       2,258,919  | 
       3  | 
       0  | 
       0  | 
       42,592  | 
       0  | 
       17,483  | 
       1,009  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       5,324,272  | 
       4  | 
       0  | 
       0  | 
       39,112  | 
       0  | 
       17,137  | 
       1,222  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       2,007,267  | 
       0  | 
       0  | 
       0  | 
       39,120  | 
       0  | 
       17,070  | 
       984  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       255,458  | 
       0  | 
       0  | 
       0  | 
       4,120  | 
       0  | 
       872  | 
       76  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       244,381  | 
       0  | 
       0  | 
       0  | 
       3,720  | 
       0  | 
       869  | 
       85  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       384,339  | 
       0  | 
       0  | 
       0  | 
       3,728  | 
       0  | 
       857  | 
       78  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       257,765  | 
       0  | 
       0  | 
       0  | 
       3,736  | 
       0  | 
       851  | 
       91  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       149  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1  | 
       0  | 
       bash  | 
    
    
      |  8  | 
       no-host  | 
       hello-world  | 
       84  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1  | 
       0  | 
       dash  | 
    
    
      |  16  | 
       no-host  | 
       hello-world  | 
       3,656  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       7  | 
       4  | 
       osh-cpython  | 
    
    
      |  24  | 
       no-host  | 
       hello-world  | 
       347  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1  | 
       0  | 
       osh-native  | 
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
  
Shell and Host