On Sun, Jan 20, 2019 at 05:22:12PM -0500, Chet Ramey wrote: > On 1/20/19 4:54 PM, Chet Ramey wrote: > > >> As an aside, I can confirm the findings of a performance difference > >> between 4.4 and 5.0 when running the script provided earlier in the > >> discussion. At first glance it seems to be due to the switch from the > >> old LCG to the current MINSTD RNG, (...) > So I ran a quick test. > > $ ./bash ./x3 > iterations: 1000000 > BASH_VERSION: 5.0.2(4)-maint > time: 9.684 > $ ../bash-5.0/bash ./x3 > iterations: 1000000 > BASH_VERSION: 5.0.0(1)-release > time: 9.749 > $ ../bash-5.0-patched/bash ./x3 > iterations: 1000000 > BASH_VERSION: 5.0.2(3)-release > time: 9.840 > $ ../bash-4.4-patched/bash ./x3 > iterations: 1000000 > BASH_VERSION: 4.4.23(7)-release > time: 11.365 > $ ../bash-4.4-patched/bash ./x3 > iterations: 1000000 > BASH_VERSION: 4.4.23(7)-release > time: 11.235 > jenna.local(1) > > Where the script is Eduardo's iterator that just expands $RANDOM > N times. > > The random number generator has been the same since bash-4.0.
I'm sorry, my tests were wrong. I built bash using the default `./configure' behavior for the `devel' branch, which I always forget, uses the internal allocator with debugging enabled, and thus, all of my times were off due to the additional malloc overhead. I rebuilt it with `../bash/configure --without-bash-malloc', which causes it to use the system's allocator, and surely enough, the timings make more sense now: (`build-bash-devel-malloc' is `configure --with-bash-malloc', `build-bash-devel' is `configure --without-bash-malloc') | dualbus@system76-pc:~/src/gnu/build-bash-devel-malloc$ ./bash ~/test-speed.sh | iterations: 1000000 | BASH_VERSION: 5.0.0(1)-maint | time: 8.765 | | dualbus@system76-pc:~/src/gnu/build-bash-devel-malloc$ ../build-bash-devel/bash ~/test-speed.sh | iterations: 1000000 | BASH_VERSION: 5.0.0(1)-maint | time: 3.431 | | dualbus@system76-pc:~/src/gnu/build-bash-devel-malloc$ bash ~/test-speed.sh | iterations: 1000000 | BASH_VERSION: 5.0.0(1)-release | time: 3.435 | | dualbus@system76-pc:~/src/gnu/build-bash-4.4$ ./bash ~/test-speed.sh | iterations: 1000000 | BASH_VERSION: 4.4.0(1)-release | time: 3.443