Skip to content

Instantly share code, notes, and snippets.

@ormaaj
Last active November 26, 2015 12:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ormaaj/728defd43fe577bc94fc to your computer and use it in GitHub Desktop.
Save ormaaj/728defd43fe577bc94fc to your computer and use it in GitHub Desktop.
~ $ mksh /dev/fd/3 3<<EOF
\${BASH_VERSION+shopt -s expand_aliases}
alias slow-ass-loop='for x in $(printf '%s ' {1..1000000}); do :; done'
foo1() { for x in {1..1000000}; do :; done; }
foo2() { slow-ass-loop; }
unalias -a
time foo1; time foo2
EOF
0m0.01s real 0m0.01s user 0m0.00s system
0m0.45s real 0m0.45s user 0m0.00s system
~ $ ksh /dev/fd/3 3<<EOF
\${BASH_VERSION+shopt -s expand_aliases}
alias slow-ass-loop='for x in $(printf '%s ' {1..1000000}); do :; done'
foo1() { for x in {1..1000000}; do :; done; }
foo2() { slow-ass-loop; }
unalias -a
time foo1; time foo2
EOF
real 0m0.56s
user 0m0.50s
sys 0m0.05s
real 0m0.15s
user 0m0.15s
sys 0m0.00s
~ $ bash /dev/fd/3 3<<EOF
\${BASH_VERSION+shopt -s expand_aliases}
alias slow-ass-loop='for x in $(printf '%s ' {1..1000000}); do :; done'
foo1() { for x in {1..1000000}; do :; done; }
foo2() { slow-ass-loop; }
unalias -a
time foo1; time foo2
EOF
real 0m1.267s
user 0m1.252s
sys 0m0.015s
...got tired of waiting for bash after 5 minutes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment