bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performances comparission between 5.1 and 5.2.


From: Alex fxmbsw7 Ratchev
Subject: Re: Performances comparission between 5.1 and 5.2.
Date: Mon, 15 Aug 2022 20:28:12 +0200

catastrophal numbers, ..

On Mon, Aug 15, 2022, 19:06 felix <felix@f-hauri.ch> wrote:

> Configuration Information:
> Machine: x86_64
> OS: linux-gnu
> Compiler: gcc
> Compilation CFLAGS: -g -O2
> uname output: Linux medium 5.10.0-12-amd64 #1 SMP Debian 5.10.103-1
> (2022-03-07) x86_64 GNU/Linux
> Machine Type: x86_64-pc-linux-gnu
>
> Bash Version: 5.2
> Patch Level: 0
> Release Status: rc2
>
> Description:
>         Trying some script under 5.2 beta, rc1 and rc2, I was surprised by
> execution time.
>         In order to compare, I've tried to establish execution time of
> elementar operations, like:
>
>          - {0..999}    .`: {0..999}`
>          - 3x{0..9}     `: {0..9}{0..9}{0..9}`
>          - readUt       `read -r ut idl </proc/uptime`
>          - RE           `[[ $cnt =~ ^[0-9]*\..*$ ]]`
>          - InLneStr     `: <<<"Hello world!"`
>          - IncInt       `int+=1`
>          - AccessRt     `: "$EPOCHREALTIME"`
>          - PrintF       `printf -v int '%s+%s' $int 1`
>
>         Here is results of my comparission between different version of
> bash:
>         (1st column show number of empty loop in 0.2 seconds as reference)
>         $ for((i=0;i<${#bashs[@]};i++)){ ${bashs[i]} timedTest.sh
> ${args[i]:--q};}
>               l/.2s    {0..999}    3x{0..9}      readUt          RE
> InLneStr      IncInt    AccessRt      PrintF  Version            BuildDir
>               66222      330.31      338.28       13.17       19.02
>  63.16        0.08        2.69        1.18  5.0.17(1)-release
> /tmp/bash/bash-5.0/bash
>               73720      366.97      379.70       13.20       17.80
>  10.09        0.10        2.46        1.19  5.1.4(1)-release   /bin/bash
>               60585      409.92      419.53       13.62       19.87
>  10.87        0.09        3.00        1.38  5.1.4(1)-release
>  /tmp/bash/bash-5.1.4/bash
>               62416      417.85      423.23       14.63       20.84
>  11.34        0.36        3.05        1.43  5.1.4(1)-release
>  /tmp/bash/bash-5.1.4/bash_dynlib
>               62538      416.97      439.28       13.65       20.69
>  12.51        0.29        3.05        1.57  5.1.4(1)-release
>  /tmp/bash/debian/bash-5.1/bash
>               60664      419.54      425.89       14.25       21.05
>  11.01        0.57        3.12        1.38  5.1.16(1)-release
> /tmp/bash/bash-5.1.16/bash
>               40808    39995.10    39995.10       18.49       35.46
>  15.65        0.34        5.81        2.40  5.2.0(1)-beta
> /tmp/bash/bash-5.2-beta/bash
>               40134    33328.35    39995.02       18.88       31.18
>  14.73        0.29        6.19        2.20  5.2.0(1)-rc1
>  /tmp/bash/bash-5.2-rc1/bash
>               40350    39995.04    39995.04       19.10       32.20
>  14.66        0.59        6.15        2.26  5.2.0(1)-rc2
>  /tmp/bash/bash-5.2-rc2/bash
>
>         Where if everything seem slower, accessing $EPOCHREALTIME like
> `prinf -v INTEGER '%s+%s' $INTEGER 1` or
>         using Regular Expression use approx 2x more time, but a sequence
> of 1000 using brace expansion require 100x more time!!
>
>         Another test (first script I wrote) is something slower, but
> render approx same results:
>         $ for((i=0;i<${#bashs[@]};i++)){ ${bashs[i]} looptest.sh
> ${args[i]:--q};}
>              l/.02s    {0..999}    3x{0..9}      readUt          RE
> InLneStr      IncInt    AccessRt      PrintF  Version            BuildDir
>                1468      340.47      348.36       16.71       22.54
>  51.44        1.71        5.10        3.51  5.0.17(1)-release  bash-5.0/bash
>                1714      366.64      380.21       15.11       20.11
>  12.23        1.33        3.99        2.35  5.1.4(1)-release   /bin/bash
>                1074      414.53      423.91       15.91       22.94
>  12.78        1.72        4.77        2.54  5.1.4(1)-release
>  bash-5.1.4/bash
>                1444      413.59      418.95       16.80       22.83
>  13.21        1.70        4.71        2.51  5.1.4(1)-release
>  bash-5.1.4/bash_dynlib
>                1360      421.20      432.83       16.33       22.79
>  12.98        1.82        4.87        2.59  5.1.4(1)-release
>  debian/bash-5.1/bash
>                1134      420.00      428.62       16.76       22.74
>  13.12        1.78        4.92        2.60  5.1.16(1)-release
> bash-5.1.16/bash
>                 687    40158.21    40676.12       23.73       38.81
>  18.98        3.96        9.87        3.94  5.2.0(1)-beta
> bash-5.2-beta/bash
>                 607    39559.71    40192.35       23.38       37.68
>  19.08        3.95        9.98        3.99  5.2.0(1)-rc1
>  bash-5.2-rc1/bash
>                 740    40531.76    40965.16       24.38       37.99
>  19.13        3.94       10.05        3.95  5.2.0(1)-rc2
>  bash-5.2-rc2/bash
>
> Repeat-By:
>         https://f-hauri.ch/vrac/timedTest.sh.txt
>         https://f-hauri.ch/vrac/looptest.sh.txt
>
> --
>  FĂ©lix Hauri  -  <felix@f-hauri.ch>  -  http://www.f-hauri.ch
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]