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  | 
       20  | 
       9  | 
       464  | 
       23  | 
       23.38  | 
       1.16  | 
    
    
      |  bin-true  | 
       no-host  | 
       683  | 
       551  | 
       2,283  | 
       827  | 
       3.34  | 
       1.21  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,501  | 
       15,604  | 
       29,613  | 
       15,701  | 
       1.91  | 
       1.01  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,902  | 
       3,825  | 
       4,738  | 
       3,927  | 
       1.21  | 
       1.01  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       50  | 
       43  | 
       195  | 
       50  | 
       3.94  | 
       1.01  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,449  | 
       15,345  | 
       32,172  | 
       14,906  | 
       2.23  | 
       1.03  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,887  | 
       1,826  | 
       2,517  | 
       1,897  | 
       1.33  | 
       1.00  | 
    
    
      |  hello-world  | 
       no-host  | 
       2  | 
       1  | 
       49  | 
       3  | 
       29.23  | 
       1.71  | 
    
  
  
    
    
    
    
    
    
    
    
  
Minor Page Faults
  
    
    | workload | 
    host name | 
    bash | 
    dash | 
    osh-cpython | 
    osh-native | 
    py bash ratio | 
    native bash ratio | 
    
  
  
    
      |  abuild-print-help  | 
       no-host  | 
       2,516  | 
       1,108  | 
       23,272  | 
       3,191  | 
       9.25  | 
       1.27  | 
    
    
      |  bin-true  | 
       no-host  | 
       104,366  | 
       66,424  | 
       758,922  | 
       127,166  | 
       7.27  | 
       1.22  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       2,215,767  | 
       2,239,641  | 
       6,135,639  | 
       2,229,444  | 
       2.77  | 
       1.01  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       410,805  | 
       391,453  | 
       637,169  | 
       413,263  | 
       1.55  | 
       1.01  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       6,530  | 
       5,474  | 
       23,162  | 
       6,996  | 
       3.55  | 
       1.07  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       2,097,356  | 
       2,262,339  | 
       5,318,181  | 
       2,017,430  | 
       2.54  | 
       0.96  | 
    
    
      |  configure.yash  | 
       no-host  | 
       256,106  | 
       245,235  | 
       384,277  | 
       257,817  | 
       1.50  | 
       1.01  | 
    
    
      |  hello-world  | 
       no-host  | 
       152  | 
       82  | 
       3,654  | 
       346  | 
       24.04  | 
       2.28  | 
    
  
  
    
    
    
    
    
    
    
    
  
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.2  | 
       6.2  | 
       3,711  | 
       3,711  | 
       0  | 
       681  | 
       1,866  | 
       1,164  | 
       2  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  bin-true  | 
       no-host  | 
       827  | 
       1  | 
       2  | 
       2.7  | 
       8.0  | 
       154,676  | 
       12,986  | 
       2,793  | 
       11,734  | 
       78,335  | 
       64,607  | 
       5,012  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,701  | 
       1  | 
       63  | 
       15.8  | 
       27.4  | 
       1,772,595  | 
       49,191  | 
       28,502  | 
       101,770  | 
       908,042  | 
       762,783  | 
       42,399  | 
       60  | 
       50,000  | 
       0  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,906  | 
       3  | 
       62  | 
       22.2  | 
       30.1  | 
       2,703,259  | 
       44,760  | 
       65,786  | 
       126,121  | 
       1,320,486  | 
       1,256,652  | 
       49,081  | 
       41  | 
       131,572  | 
       1  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,927  | 
       1  | 
       2  | 
       2.7  | 
       20.6  | 
       150,021  | 
       11,039  | 
       5,132  | 
       8,602  | 
       71,620  | 
       69,799  | 
       2,680  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       50  | 
       0  | 
       0  | 
       1.3  | 
       19.4  | 
       30,514  | 
       30,514  | 
       0  | 
       1,599  | 
       14,790  | 
       14,125  | 
       350  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,897  | 
       1  | 
       2  | 
       2.6  | 
       24.2  | 
       139,678  | 
       7,958  | 
       6,594  | 
       7,554  | 
       70,292  | 
       61,832  | 
       2,990  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  abuild-print-help  | 
       no-host  | 
       23  | 
       1  | 
       2  | 
       2.8  | 
       8.9  | 
       116,257  | 
       64,449  | 
       42,657  | 
       4,609  | 
       54,535  | 
       57,113  | 
       478  | 
       3  | 
       85,314  | 
       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  | 
       20  | 
       12  | 
       8  | 
       4.3  | 
       bash  | 
    
    
      |  15  | 
       no-host  | 
       abuild-print-help  | 
       9  | 
       8  | 
       1  | 
       3.5  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       464  | 
       430  | 
       38  | 
       21.8  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       23  | 
       14  | 
       9  | 
       8.9  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       683  | 
       491  | 
       223  | 
       2.9  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       551  | 
       418  | 
       142  | 
       1.4  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       2,283  | 
       1,426  | 
       1,123  | 
       17.3  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       827  | 
       599  | 
       245  | 
       8.0  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       15,501  | 
       9,317  | 
       6,596  | 
       27.4  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       15,604  | 
       9,326  | 
       6,714  | 
       27.4  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       29,613  | 
       17,687  | 
       13,850  | 
       27.4  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       15,701  | 
       9,247  | 
       6,721  | 
       27.4  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       3,902  | 
       1,725  | 
       1,217  | 
       20.6  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       3,825  | 
       1,610  | 
       1,236  | 
       20.6  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       4,738  | 
       2,321  | 
       1,623  | 
       20.4  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       3,927  | 
       1,770  | 
       1,197  | 
       20.6  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       50  | 
       31  | 
       19  | 
       19.4  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       43  | 
       30  | 
       14  | 
       19.3  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       195  | 
       143  | 
       56  | 
       19.3  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       50  | 
       30  | 
       20  | 
       19.4  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       14,449  | 
       9,101  | 
       5,838  | 
       30.1  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       15,345  | 
       9,274  | 
       6,572  | 
       30.3  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       32,172  | 
       21,064  | 
       12,244  | 
       30.3  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       14,906  | 
       8,824  | 
       6,284  | 
       30.1  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       1,887  | 
       1,098  | 
       796  | 
       24.2  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       1,826  | 
       1,042  | 
       787  | 
       24.4  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       2,517  | 
       1,553  | 
       1,009  | 
       24.2  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       1,897  | 
       1,112  | 
       789  | 
       24.2  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       2  | 
       2  | 
       0  | 
       2.9  | 
       bash  | 
    
    
      |  8  | 
       no-host  | 
       hello-world  | 
       1  | 
       1  | 
       0  | 
       1.4  | 
       dash  | 
    
    
      |  16  | 
       no-host  | 
       hello-world  | 
       49  | 
       21  | 
       28  | 
       17.1  | 
       osh-cpython  | 
    
    
      |  24  | 
       no-host  | 
       hello-world  | 
       3  | 
       0  | 
       3  | 
       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,516  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       3  | 
       bash  | 
    
    
      |  15  | 
       no-host  | 
       abuild-print-help  | 
       1,108  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       39  | 
       1  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       23,272  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       47  | 
       12  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       3,191  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       1  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       104,366  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,990  | 
       76  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       66,424  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,983  | 
       46  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       758,922  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,996  | 
       213  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       127,166  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1,984  | 
       72  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       2,215,767  | 
       0  | 
       0  | 
       0  | 
       32,928  | 
       0  | 
       14,515  | 
       1,104  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       2,239,641  | 
       0  | 
       0  | 
       0  | 
       32,992  | 
       0  | 
       14,585  | 
       1,035  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       6,135,639  | 
       1  | 
       0  | 
       0  | 
       27,512  | 
       0  | 
       13,245  | 
       1,362  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       2,229,444  | 
       1  | 
       0  | 
       0  | 
       27,520  | 
       0  | 
       13,256  | 
       1,079  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       410,805  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,948  | 
       188  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       391,453  | 
       0  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,884  | 
       149  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       637,169  | 
       0  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,862  | 
       196  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       413,263  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,935  | 
       151  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       6,530  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       49  | 
       8  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       5,474  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       47  | 
       5  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       23,162  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       53  | 
       5  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       6,996  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       47  | 
       15  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       2,097,356  | 
       8  | 
       0  | 
       0  | 
       42,400  | 
       0  | 
       18,642  | 
       1,137  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       2,262,339  | 
       0  | 
       0  | 
       0  | 
       42,584  | 
       0  | 
       17,416  | 
       1,226  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       5,318,181  | 
       8  | 
       0  | 
       0  | 
       39,136  | 
       0  | 
       17,072  | 
       1,345  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       2,017,430  | 
       1  | 
       0  | 
       0  | 
       39,128  | 
       0  | 
       17,067  | 
       995  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       256,106  | 
       0  | 
       0  | 
       0  | 
       4,120  | 
       0  | 
       871  | 
       109  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       245,235  | 
       0  | 
       0  | 
       0  | 
       3,720  | 
       0  | 
       866  | 
       80  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       384,277  | 
       0  | 
       0  | 
       0  | 
       3,728  | 
       0  | 
       856  | 
       143  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       257,817  | 
       0  | 
       0  | 
       0  | 
       3,736  | 
       0  | 
       852  | 
       83  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       152  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1  | 
       0  | 
       bash  | 
    
    
      |  8  | 
       no-host  | 
       hello-world  | 
       82  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1  | 
       0  | 
       dash  | 
    
    
      |  16  | 
       no-host  | 
       hello-world  | 
       3,654  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       7  | 
       4  | 
       osh-cpython  | 
    
    
      |  24  | 
       no-host  | 
       hello-world  | 
       346  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1  | 
       0  | 
       osh-native  | 
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
  
Shell and Host