ProfilingCoq - coq/coq GitHub Wiki

Workspace for the Profiling Coq work group at CIW2018

Objective: write down a tutorial on how to profile Coq to pin point the root cause of an inefficiency.

Plan: split the works in blocks, each with an expert and a tester. The expert documents/explains the tool then the tester validates the documentation and helps putting it in a decent form.

Blocks, sorted by "abstraction" level, descending.

Level: formalization style

  • Recurrent problems: term comparison, unification, TC resolution
  • Tools: ?, CI/pendulum(per-line-diff)
  • Work around: locking, ...?
  • Experts: enrico, matthieu
  • Tester: anton

Level: Ltac

  • Symptoms: slow ltac tactic
  • Tools: ltacprof(proof-engine/ltac.rst), time?, Time, CI/pendulum(per-line-diff)
  • Experts: enrico
  • Tester:

Level: ML

  • Problems: slow ML tactic
  • Tools: lib/cProfile.ml
  • Experts: enrico
  • Task: unify ssrcommon.ml/mk_profile and lib/cProfile.ml
  • Tester:

Level: VM

  • Tools:
  • Experts: maxime
  • Tester: erik

Level: native compute

  • Tools: perf
  • Experts: maxime
  • Tester:

Level: binary (eventual recompilation)

  • Recurrent problems: slowness due to allocations/GC-cycles in tight loops
  • Tools: perf + various OCaml branches
  • Experts: pierre-marie (dev/doc/profiling.txt)
  • Tester: