[isabelle-dev] profiling
Andreas Schropp
schropp at in.tum.de
Mon Mar 1 22:03:30 CET 2010
On 03/01/2010 09:28 PM, Brian Huffman wrote:
> Hello all,
>
> I am trying to use profiling to measure the performance of the HOLCF
> domain package. I recently discovered that I can enable profiling in
> Isabelle with the following command:
>
> ML {* Toplevel.profiling := 1; *}
>
> Here's the output from a "new_domain" command that I tried:
>
> ... (lots of small numbers) ...
> 10 Defs.reduction(4)reduct(3)
> 11 Table().fold_table(1)fold(2)
> 12 Defs.match_args(2)
> 12 Sorts.mg_domain(3)
> 13 Type.raw_match(3)
> 15 List.map(2)
> 16 GARBAGE COLLECTION (update phase)
> 21 GARBAGE COLLECTION (mark phase)
> 39 Table().lookup(2)look(1)
> 39 GARBAGE COLLECTION (total)
> 40 Table().modify(3)modfy(1)
>
> Total: 293; Counted: 293; Uncounted: 0
> ### 1.420s elapsed time, 1.284s cpu time, 0.156s GC time
>
> Apparently the domain package spends a lot of time doing lookups and
> modifications of tables. But I have no idea which functions are
> calling the table library, so this information is basically useless.
>
Im just guessing from the call dependencies I know:
it looks like you are doing some overloaded definition which results
in (quite?) some normalization of the constant dependency tracking in
defs.ML. But that doesn't explain Sorts.mg_domain - are type-class-heavy
unifications involved?
> What other profiling tools are available for me to use?
To my knowledge: none.
But you can at least leaverage the existing ones in funny ways, like
profiling a single function call with profile 1 f x.
And you can profile allocations by replacing 1 by 2, which is much more
accurate then the monte-carlo-based time profiling.
> It would be
> nice to have something similar to the profiler in GHC, which outputs a
> tree-like table that shows the time spent in each function, as well as
> the total inherited time from all other functions called by it.
>
Yeah, I loved to have that too.
Performance debugging in Isabelle seems to be mostly guess-and-verify.
At least thats how I am approaching it.
> - Brian
> _______________________________________________
> Isabelle-dev mailing list
> Isabelle-dev at mailbroy.informatik.tu-muenchen.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev
>
More information about the isabelle-dev
mailing list