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  | 
       10  | 
       457  | 
       23  | 
       23.00  | 
       1.13  | 
    
    
      |  bin-true  | 
       no-host  | 
       675  | 
       551  | 
       2,271  | 
       827  | 
       3.36  | 
       1.22  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,488  | 
       15,551  | 
       29,330  | 
       15,711  | 
       1.89  | 
       1.01  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,939  | 
       3,831  | 
       4,737  | 
       3,894  | 
       1.20  | 
       0.99  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       51  | 
       43  | 
       198  | 
       49  | 
       3.89  | 
       0.97  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,435  | 
       15,405  | 
       32,129  | 
       14,839  | 
       2.23  | 
       1.03  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,904  | 
       1,818  | 
       2,501  | 
       1,881  | 
       1.31  | 
       0.99  | 
    
    
      |  hello-world  | 
       no-host  | 
       1  | 
       1  | 
       48  | 
       3  | 
       32.75  | 
       1.92  | 
    
  
  
    
    
    
    
    
    
    
    
  
Minor Page Faults
  
    
    | workload | 
    host name | 
    bash | 
    dash | 
    osh-cpython | 
    osh-native | 
    py bash ratio | 
    native bash ratio | 
    
  
  
    
      |  abuild-print-help  | 
       no-host  | 
       2,561  | 
       1,132  | 
       23,198  | 
       3,206  | 
       9.06  | 
       1.25  | 
    
    
      |  bin-true  | 
       no-host  | 
       104,378  | 
       66,503  | 
       749,451  | 
       127,209  | 
       7.18  | 
       1.22  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       2,221,400  | 
       2,239,057  | 
       6,100,556  | 
       2,232,441  | 
       2.75  | 
       1.00  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       410,445  | 
       390,947  | 
       636,406  | 
       413,950  | 
       1.55  | 
       1.01  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       6,537  | 
       5,458  | 
       23,195  | 
       6,989  | 
       3.55  | 
       1.07  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       2,102,850  | 
       2,260,507  | 
       5,304,978  | 
       2,015,632  | 
       2.52  | 
       0.96  | 
    
    
      |  configure.yash  | 
       no-host  | 
       256,246  | 
       245,079  | 
       385,501  | 
       258,799  | 
       1.50  | 
       1.01  | 
    
    
      |  hello-world  | 
       no-host  | 
       153  | 
       84  | 
       3,661  | 
       347  | 
       23.93  | 
       2.27  | 
    
  
  
    
    
    
    
    
    
    
    
  
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,720  | 
       3,720  | 
       0  | 
       684  | 
       1,872  | 
       1,164  | 
       2  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  bin-true  | 
       no-host  | 
       827  | 
       1  | 
       2  | 
       2.7  | 
       8.1  | 
       154,685  | 
       12,990  | 
       2,797  | 
       11,737  | 
       78,341  | 
       64,607  | 
       5,012  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.cpython  | 
       no-host  | 
       15,711  | 
       1  | 
       63  | 
       15.8  | 
       27.5  | 
       1,772,601  | 
       49,195  | 
       28,506  | 
       101,770  | 
       908,048  | 
       762,783  | 
       42,399  | 
       60  | 
       50,000  | 
       0  | 
    
    
      |  configure.util-linux  | 
       no-host  | 
       14,839  | 
       3  | 
       63  | 
       22.2  | 
       30.4  | 
       2,703,265  | 
       44,764  | 
       65,790  | 
       126,121  | 
       1,320,492  | 
       1,256,652  | 
       49,081  | 
       41  | 
       131,580  | 
       1  | 
    
    
      |  configure.ocaml  | 
       no-host  | 
       3,894  | 
       1  | 
       2  | 
       2.7  | 
       20.6  | 
       150,027  | 
       11,043  | 
       5,136  | 
       8,602  | 
       71,626  | 
       69,799  | 
       2,680  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  configure.tcc  | 
       no-host  | 
       49  | 
       0  | 
       0  | 
       1.3  | 
       19.3  | 
       30,520  | 
       30,520  | 
       0  | 
       1,599  | 
       14,796  | 
       14,125  | 
       350  | 
       0  | 
       50,000  | 
       0  | 
    
    
      |  configure.yash  | 
       no-host  | 
       1,881  | 
       1  | 
       2  | 
       2.6  | 
       24.2  | 
       139,684  | 
       7,962  | 
       6,598  | 
       7,554  | 
       70,298  | 
       61,832  | 
       2,990  | 
       3  | 
       50,000  | 
       0  | 
    
    
      |  abuild-print-help  | 
       no-host  | 
       23  | 
       1  | 
       2  | 
       2.8  | 
       8.7  | 
       116,263  | 
       64,453  | 
       42,661  | 
       4,609  | 
       54,541  | 
       57,113  | 
       478  | 
       3  | 
       85,322  | 
       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  | 
       10  | 
       9  | 
       1  | 
       3.4  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       457  | 
       415  | 
       45  | 
       21.5  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       23  | 
       19  | 
       4  | 
       8.7  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       675  | 
       483  | 
       222  | 
       3.0  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       551  | 
       418  | 
       142  | 
       1.6  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       2,271  | 
       1,439  | 
       1,091  | 
       17.3  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       827  | 
       595  | 
       244  | 
       8.1  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       15,488  | 
       9,465  | 
       6,415  | 
       27.4  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       15,551  | 
       9,253  | 
       6,720  | 
       27.5  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       29,330  | 
       17,895  | 
       13,304  | 
       27.4  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       15,711  | 
       9,242  | 
       6,739  | 
       27.5  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       3,939  | 
       1,701  | 
       1,268  | 
       20.6  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       3,831  | 
       1,604  | 
       1,247  | 
       20.4  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       4,737  | 
       2,262  | 
       1,686  | 
       20.6  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       3,894  | 
       1,644  | 
       1,289  | 
       20.6  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       51  | 
       30  | 
       22  | 
       19.3  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       43  | 
       29  | 
       14  | 
       19.4  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       198  | 
       146  | 
       54  | 
       19.3  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       49  | 
       29  | 
       20  | 
       19.3  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       14,435  | 
       8,958  | 
       5,946  | 
       30.1  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       15,405  | 
       9,291  | 
       6,605  | 
       30.3  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       32,129  | 
       21,227  | 
       11,994  | 
       30.1  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       14,839  | 
       8,876  | 
       6,152  | 
       30.4  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       1,904  | 
       1,107  | 
       805  | 
       24.5  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       1,818  | 
       1,052  | 
       770  | 
       24.2  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       2,501  | 
       1,498  | 
       1,046  | 
       24.4  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       1,881  | 
       1,071  | 
       814  | 
       24.2  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       1  | 
       1  | 
       0  | 
       2.9  | 
       bash  | 
    
    
      |  8  | 
       no-host  | 
       hello-world  | 
       1  | 
       1  | 
       0  | 
       1.4  | 
       dash  | 
    
    
      |  16  | 
       no-host  | 
       hello-world  | 
       48  | 
       36  | 
       12  | 
       17.2  | 
       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,561  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       1  | 
       bash  | 
    
    
      |  15  | 
       no-host  | 
       abuild-print-help  | 
       1,132  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       39  | 
       2  | 
       dash  | 
    
    
      |  23  | 
       no-host  | 
       abuild-print-help  | 
       23,198  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       47  | 
       11  | 
       osh-cpython  | 
    
    
      |  31  | 
       no-host  | 
       abuild-print-help  | 
       3,206  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       41  | 
       2  | 
       osh-native  | 
    
    
      |  1  | 
       no-host  | 
       bin-true  | 
       104,378  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,985  | 
       50  | 
       bash  | 
    
    
      |  9  | 
       no-host  | 
       bin-true  | 
       66,503  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,987  | 
       68  | 
       dash  | 
    
    
      |  17  | 
       no-host  | 
       bin-true  | 
       749,451  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       1,995  | 
       285  | 
       osh-cpython  | 
    
    
      |  25  | 
       no-host  | 
       bin-true  | 
       127,209  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1,977  | 
       63  | 
       osh-native  | 
    
    
      |  2  | 
       no-host  | 
       configure.cpython  | 
       2,221,400  | 
       0  | 
       0  | 
       0  | 
       32,928  | 
       0  | 
       14,404  | 
       1,135  | 
       bash  | 
    
    
      |  10  | 
       no-host  | 
       configure.cpython  | 
       2,239,057  | 
       0  | 
       0  | 
       0  | 
       32,992  | 
       0  | 
       14,635  | 
       1,098  | 
       dash  | 
    
    
      |  18  | 
       no-host  | 
       configure.cpython  | 
       6,100,556  | 
       0  | 
       0  | 
       0  | 
       27,512  | 
       0  | 
       13,255  | 
       1,302  | 
       osh-cpython  | 
    
    
      |  26  | 
       no-host  | 
       configure.cpython  | 
       2,232,441  | 
       0  | 
       0  | 
       0  | 
       27,520  | 
       0  | 
       13,237  | 
       976  | 
       osh-native  | 
    
    
      |  4  | 
       no-host  | 
       configure.ocaml  | 
       410,445  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,964  | 
       168  | 
       bash  | 
    
    
      |  12  | 
       no-host  | 
       configure.ocaml  | 
       390,947  | 
       0  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,883  | 
       156  | 
       dash  | 
    
    
      |  20  | 
       no-host  | 
       configure.ocaml  | 
       636,406  | 
       1  | 
       0  | 
       0  | 
       5,112  | 
       0  | 
       1,859  | 
       176  | 
       osh-cpython  | 
    
    
      |  28  | 
       no-host  | 
       configure.ocaml  | 
       413,950  | 
       0  | 
       0  | 
       0  | 
       5,120  | 
       0  | 
       1,935  | 
       165  | 
       osh-native  | 
    
    
      |  5  | 
       no-host  | 
       configure.tcc  | 
       6,537  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       49  | 
       3  | 
       bash  | 
    
    
      |  13  | 
       no-host  | 
       configure.tcc  | 
       5,458  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       47  | 
       5  | 
       dash  | 
    
    
      |  21  | 
       no-host  | 
       configure.tcc  | 
       23,195  | 
       0  | 
       0  | 
       0  | 
       96  | 
       0  | 
       53  | 
       17  | 
       osh-cpython  | 
    
    
      |  29  | 
       no-host  | 
       configure.tcc  | 
       6,989  | 
       0  | 
       0  | 
       0  | 
       104  | 
       0  | 
       47  | 
       3  | 
       osh-native  | 
    
    
      |  3  | 
       no-host  | 
       configure.util-linux  | 
       2,102,850  | 
       0  | 
       0  | 
       0  | 
       42,400  | 
       0  | 
       18,609  | 
       1,124  | 
       bash  | 
    
    
      |  11  | 
       no-host  | 
       configure.util-linux  | 
       2,260,507  | 
       1  | 
       0  | 
       0  | 
       42,584  | 
       0  | 
       17,437  | 
       1,122  | 
       dash  | 
    
    
      |  19  | 
       no-host  | 
       configure.util-linux  | 
       5,304,978  | 
       6  | 
       0  | 
       0  | 
       39,136  | 
       0  | 
       17,081  | 
       1,269  | 
       osh-cpython  | 
    
    
      |  27  | 
       no-host  | 
       configure.util-linux  | 
       2,015,632  | 
       0  | 
       0  | 
       0  | 
       39,120  | 
       0  | 
       17,072  | 
       1,032  | 
       osh-native  | 
    
    
      |  6  | 
       no-host  | 
       configure.yash  | 
       256,246  | 
       0  | 
       0  | 
       0  | 
       4,120  | 
       0  | 
       868  | 
       80  | 
       bash  | 
    
    
      |  14  | 
       no-host  | 
       configure.yash  | 
       245,079  | 
       0  | 
       0  | 
       0  | 
       3,720  | 
       0  | 
       869  | 
       75  | 
       dash  | 
    
    
      |  22  | 
       no-host  | 
       configure.yash  | 
       385,501  | 
       0  | 
       0  | 
       0  | 
       3,728  | 
       0  | 
       854  | 
       113  | 
       osh-cpython  | 
    
    
      |  30  | 
       no-host  | 
       configure.yash  | 
       258,799  | 
       0  | 
       0  | 
       0  | 
       3,736  | 
       0  | 
       848  | 
       82  | 
       osh-native  | 
    
    
      |  0  | 
       no-host  | 
       hello-world  | 
       153  | 
       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,661  | 
       0  | 
       0  | 
       0  | 
       8  | 
       0  | 
       7  | 
       5  | 
       osh-cpython  | 
    
    
      |  24  | 
       no-host  | 
       hello-world  | 
       347  | 
       0  | 
       0  | 
       0  | 
       16  | 
       0  | 
       1  | 
       0  | 
       osh-native  | 
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
  
Shell and Host