-
-
Save timo/0f7a2430c26e431231eba1b551993dc8 to your computer and use it in GitHub Desktop.
timo micro-optimizes a surprisingly expensive function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
before: | |
// random context | |
7.82% moar libmoar.so [.] MVM_interp_run | |
4.44% moar libmoar.so [.] MVM_frame_dispatch | |
3.75% moar libmoar.so [.] MVM_disp_program_run | |
3.34% moar libmoar.so [.] nqp_nfa_run | |
2.60% moar libmoar.so [.] MVM_fixed_size_alloc | |
2.51% moar libmoar.so [.] MVM_spesh_arg_guard_run | |
2.17% moar libmoar.so [.] allocate_frame | |
//[...] | |
1.35% moar [JIT] tid 2084179 [.] MATCH(gen/moar/stage2/QRegex.nqp:2152) | |
//[...] | |
0.40% moar [JIT] tid 2084179 [.] _ws(/home/timo/perl6/rakudo/blib/Perl6/Grammar.moarvm:1) | |
//[...] | |
0.34% moar [JIT] tid 2084179 [.] termish(gen/moar/Grammar.nqp:3711) | |
0.32% moar [JIT] tid 2084179 [.] !alt(gen/moar/stage2/QRegex.nqp:1743) | |
// important bit | |
0.30% moar [JIT] tid 2084179 [.] linefileof(gen/moar/stage2/NQPHLL.nqp:2499) | |
0.05% moar [JIT] tid 2084179 [.] line_and_column_of(gen/moar/stage2/NQPHLL.nqp:2439) | |
0.01% moar [JIT] tid 2084179 [.] linefileof(gen/moar/stage2/NQPHLL.nqp:2499) | |
0.00% moar [JIT] tid 2084179 [.] lineof(gen/moar/stage2/NQPHLL.nqp:2495) | |
after: | |
// random context | |
7.85% moar libmoar.so [.] MVM_interp_run | |
4.46% moar libmoar.so [.] MVM_frame_dispatch | |
3.50% moar libmoar.so [.] MVM_disp_program_run | |
3.42% moar libmoar.so [.] nqp_nfa_run | |
2.65% moar libmoar.so [.] MVM_fixed_size_alloc | |
2.47% moar libmoar.so [.] MVM_spesh_arg_guard_run | |
2.14% moar libmoar.so [.] allocate_frame | |
//[...] | |
1.42% moar [JIT] tid 2082768 [.] MATCH(gen/moar/stage2/QRegex.nqp:2152) | |
//[...] | |
0.44% moar [JIT] tid 2082768 [.] _ws(/home/timo/perl6/rakudo/blib/Perl6/Grammar.moarvm:1) | |
//[...] | |
0.37% moar [JIT] tid 2082768 [.] termish(gen/moar/Grammar.nqp:3711) | |
//[...] | |
0.33% moar [JIT] tid 2082768 [.] !alt(gen/moar/stage2/QRegex.nqp:1743) | |
//[...] | |
0.29% moar [JIT] tid 2082768 [.] visit_children(gen/moar/Optimizer.nqp:2832) | |
//[...] | |
0.27% moar [JIT] tid 2082768 [.] prepare-hash(gen/moar/stage2/NQPCORE.setting:402) | |
//[...] | |
0.26% moar [JIT] tid 2082768 [.] !cursor_start(gen/moar/stage2/QRegex.nqp:1481) | |
//[...] | |
0.25% moar [JIT] tid 2082768 [.] compile_var(gen/moar/stage2/QAST.nqp:6534) | |
//[... many many many lines ...] | |
0.06% moar [JIT] tid 2082768 [.] set(gen/moar/stage2/QASTNode.nqp:142) | |
0.06% moar [JIT] tid 2082768 [.] lexical_vars_to_locals(gen/moar/Optimizer.nqp:711) | |
0.06% moar [JIT] tid 2082768 [.] statementlist(gen/moar/Actions.nqp:1489) | |
0.05% moar [JIT] tid 2082768 [.] MARKER(gen/moar/stage2/NQPHLL.nqp:1437) | |
0.05% moar [JIT] tid 2082768 [.] release_register(gen/moar/stage2/QAST.nqp:5046) | |
0.05% moar [JIT] tid 2082768 [.] !cursor_start(gen/moar/stage2/QRegex.nqp:1481) | |
//[...] | |
0.05% moar [JIT] tid 2082768 [.] line_and_column_of(gen/moar/stage2/NQPHLL.nqp:2439) | |
0.01% moar [JIT] tid 2082768 [.] linefileof(gen/moar/stage2/NQPHLL.nqp:2499) | |
0.01% moar [JIT] tid 2082768 [.] linefileof(gen/moar/stage2/NQPHLL.nqp:2499) | |
0.00% moar [JIT] tid 2082768 [.] lineof(gen/moar/stage2/NQPHLL.nqp:2495) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment