tool to analyze performance of perl6 programs
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea useless humongous commit with all the stuff May 25, 2018
frontend
green_cup useless humongous commit with all the stuff May 25, 2018
lib Newer NQPs include proper data, so don't delete it Nov 10, 2018
static upgrade to newer webpack, rewrite config Nov 6, 2018
.babelrc allow "static const" in classes Aug 12, 2018
.cro.yml
.eslintrc.json useless humongous commit with all the stuff May 25, 2018
.flowconfig useless humongous commit with all the stuff May 25, 2018
.gitignore Implement first part of business logic Sep 30, 2017
.travis.yml
AppMoarVMHeapAnalyzer.iml useless humongous commit with all the stuff May 25, 2018
META6.json forgot DBIish in the dependency list Nov 4, 2018
README.md give a rudimentary readme for moarperf Oct 29, 2018
package-lock.json
package.json upgrade to newer webpack, rewrite config Nov 6, 2018
service.p6
webpack.config.js upgrade to newer webpack, rewrite config Nov 6, 2018

README.md

Rakudo Profiler Front-End

Moarperf is a tool that takes the output of the Rakudo perl 6 profilers available on MoarVM and makes them viewable with a web browser.

Currently, only the instrumented profiler, which is the default one you get when you run a program with the --profile flag. It is important to pass a --profile-filename that ends in .sql.

Installing and Running the Front-end

You can install all dependencies of moarperf using zef. From inside a git clone or extracted archive of moarperf you can call zef install --depsonly ..

Some tests might not run right. That's probably not a big problem. If it keeps you from progressing, you can additionally pass --/test to zef.

The next step is to build and bundle all the javascript stuff. For that, first install the dependencies to your local node_modules using, for example, npm install .. Then to actually throw the code bundles together, run npm run build. It will start a watcher that immediately recompiles stuff whenever the sources change. That's good for development, but not for usage. You can just ctrl-c it after it spat out its summary of files generated.

After that, you can run perl6 -I lib service.p6 to start the program. By default it will open a web interface on http://localhost:20000, but environment variables can be used to change that. Passing a filename, either a .sql or a .sqlite3 file, will immediately load the profile data in question.

More info

My blog on https://wakelift.de has a couple of posts that explain aspects of the program.

The program's development is funded by a grant from The Perl Foundation.