JIT Compiler Logs

JitLog is a PyPy logging facility that outputs information about compiler internals. It was built primarily for the following use cases:

  • Understand JIT internals and be able to browse emitted code (both IR operations and machine code)
  • Track down speed issues
  • Help bug reporting

This version is now integrated within the webservice vmprof.com and can be used free of charge.

Usage

The following commands show example usages:

# upload both vmprof & jitlog profiles
pypy -m vmprof --web --jitlog <program.py> <arguments>

# upload only a jitlog profile
pypy -m jitlog --web <program.py> <arguments>

# upload a jitlog when your program segfaults/crashes
$ pypy -m jitlog -o /tmp/file.log <program.py> <arguments>
<Segfault>
$ pypy -m jitlog --upload /tmp/file.log

Data sent

We only send the bare essentials to vmprof.com.

This includes:

  • Meta data the JIT compiler produces. E.g. IR operations, Machine code
  • Source code snippets: vmprof.com will receive source lines of your program. Only those are transmitted that ran often enough to trigger the JIT compiler to optimize your program.