GaloisInc / saw-script

The SAW scripting language.
BSD 3-Clause "New" or "Revised" License
438 stars 63 forks source link

Feature request: proof script profiling #1196

Open msaaltink opened 3 years ago

msaaltink commented 3 years ago

I have some proof scripts that take a very long time to run. It might be useful to have some way to find out which steps or which subgoals are taking the longest, as I could then try to make things run faster. It is hard to explore alternative scripts when it takes several minutes for each experiment, so some indication of where the hotspots are would be useful. Among the questions I might hope to answer are: Is my simpset inefficient? Am I unfolding too many names? Does my simplify step even accomplish anything? So, not exactly profiling (although timing would be useful), but some additional outputs when I want them, such as the list of names that are unfolded in a goal_eval, goal_eval_unint, or smt proving command, and maybe some idea of how much rewriting got done.

robdockins commented 3 years ago

Easy idea: have a version of time that works in the ProofScript monad, so at least you can do things like this manually

kquick commented 3 years ago

Various thoughts: