Skip to content

Commit

Permalink
Update performance.pod6
Browse files Browse the repository at this point in the history
  • Loading branch information
MasterDuke17 committed Aug 2, 2019
1 parent 19a54a1 commit d92770b
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions doc/Language/performance.pod6
Expand Up @@ -71,16 +71,16 @@ jitted. Deopts are the opposite, when speshed or jitted code has to be
If the profile data is too big, it could take a long time for a browser to open
the file. In that case, output to a file with a C<.json> extension using the
C<--profile-filename> option, then open the file with the
C<--profile=filename> option, then open the file with the
L<Qt viewer|https://github.com/tadzik/p6profiler-qt>.
To deal with even larger profiles, output to a file with a C<.sql> extension.
This will write the profile data as a series
of SQL statements, suitable for opening in SQLite.
This will write the profile data as a series of SQL statements, suitable for
opening in SQLite.
=begin code :lang<shell>
# create a profile
perl6 --profile --profile-filename=demo.sql -e 'say (^20).combinations(3).elems'
perl6 --profile=demo.sql -e 'say (^20).combinations(3).elems'
# create a SQLite database
sqlite3 demo.sqlite
Expand Down Expand Up @@ -108,6 +108,11 @@ of SQL statements, suitable for opening in SQLite.
limit 30;
=end code
The in-progress, next-gen profiler is L<moar-perf|https://github.com/timo/moarperf>, which
can accept .sql or SQLite files and has a bunch of new functionality compared to the original
profiler. However, it has more dependencies than the relatively stand-alone original profiler,
so you'll have to install some modules before using it.
To learn how to interpret the profile info, use the C<prof-m: your code goes
here> evalbot (explained above) and ask questions on the IRC channel.
Expand Down Expand Up @@ -153,7 +158,7 @@ L<camelia|/language/glossary#camelia>.
=head2 Routine by routine
With multidispatch, you can drop in new variants of routines "alongside"
With multi-dispatch, you can drop in new variants of routines "alongside"
existing ones:
# existing code generically matches a two arg foo call:
Expand Down Expand Up @@ -245,7 +250,7 @@ L<MoarVM|https://moarvm.org> and visit the freenode IRC channel #moarvm
=head2 Still need more ideas?
Some known current Rakudo performance weaknesses not yet covered in this page
include the use of gather/take, junctions, regexes and string handling in
include the use of gather/take, junctions, regexes, and string handling in
general.
If you think some topic needs more coverage on this page, please submit a PR or
Expand Down

0 comments on commit d92770b

Please sign in to comment.