Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The major modern use case I know of is command-line utilities which also benefit from low start-up. Of course, that doesn't mean there hasn't been "perf rot" over the decades as you say. Such rot should never surprise anyone. :-)

Some perl5 lover should take the time to compile all those 5.6 to 5.42 versions on the same host OS/CPU and do a performance comparison and create a nice chart for the world to trap and maybe correct such performance regressions. I just tried getting 5.8.9 to compile on modern Linux with gcc-15, and it seemed like a real PITA. (Earlier didn't even ./Configure -des right.)



Well, I spent a little more time on it, and for that one Perl version (on one cpu, i7-6700k, one OS - Linux 6.15, with one compiler gcc-15) I got a 1.5x slowdown of perl startup from 2008 to 2025. Not great!

    zsh# rei=(chrt 99 taskset -c 2-3 env -i HOME=$HOME PATH=/bin)
    zsh# tim=(-k2 -o14 -n14 -m14)
    
    # Set 1
    zsh# $rei tim $tim './perl-5.8.9</n' 'perl-5.42.0</n'
    218.5 +- 1.9 μs (AlreadySubtracted)Overhead
    626 +- 14 μs    ./perl-5.8.9</n
    953.5 +- 8.6 μs perl-5.42.0</n
    
    # Set 2
    zsh# $rei tim $tim './perl-5.8.9</n' 'perl-5.42.0</n'
    247 +- 15 μs    (AlreadySubtracted)Overhead
    633 +- 26 μs    ./perl-5.8.9</n
    989 +- 25 μs    perl-5.42.0</n
    
    # Consistency check - well within 2 sigma for both
    zsh# a (989 +- 25)-(953.5 +- 8.6)
    36 +- 26
    zsh# a (626 +- 14)-(633 +- 26)   
    -7 +- 30
    
    # Final report; weighted means to maximize precision
    zsh# a mean(989 +- 25,953.5 +- 8.6)/mean(626 +- 14,633 +- 26)
    1.525 +- 0.033
EDIT: Oh, yeah, and /n -> /dev/null is a symlink I always use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: