Potential Contract Profiler UI Change

28 views
Skip to first unread message

Vincent St-Amour

unread,
Jan 5, 2016, 6:06:09 PM1/5/16
to Racket Users

I'm considering a change to the UI of the contract profiler, and would
like opinions from people using it.

As of 6.3, the contract profiler emits its various reports in a few
separate files, whose names are hard-coded. This is (IMO) a UI
disaster, which makes the profiler harder to use.

As of HEAD, the situation is slightly better; file names can be
specified, individual reports can be enabled/disabled, and the main
report (the cost breakdown) has the option to be produced on standard
output (as the regular Racket profiler does). This change was fully
backwards compatible, but still does not result in a great UI. This
change has also not been part of a release yet.


For the next release, I'm considering redesigning this part of the
contract profiler UI. Specifically, I'm proposing:

- Emitting the cost breakdown on standard output, like the regular
Racket profiler.
- Disabling alternative views (module view and boundary view) by
default.
- Allow enabling alternative views individually, and specifying their
output files.
- Disabling output of intermediate graphviz files by default, even
when alternative views are enabled, with the option to enable them.

As a result, the contract profiler would not produce any output files
unless it's explicitly asked to, and instead emit its main output to
standard output. All the existing reports would still be available, but
some would not be shown by default, emphasizing the most-often-useful
one.


I think this change would make the contract profiler easier and faster
to use, especially for quick tests.

This change, however, is not fully backwards compatible. Mind you, it is
a UI change; the API to the contract profiler remains unchanged. But if
you have scripts that depend on the location of the profiler's output,
they would need to change.


Any opinions?

I'd like to make this change before the release, so timely replies would
be appreciated. :)

Vincent

Benjamin Greenman

unread,
Jan 5, 2016, 11:51:10 PM1/5/16
to Vincent St-Amour, Racket Users
Sounds great! Two suggestions:

1. A `raco contract-profile` command to run the main submodule in a file.

2. Make even less output by default -- just the overall runtime & by-callee contracts.

But this is just my opinion :)



Vincent

--
You received this message because you are subscribed to the Google Groups "Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Vincent St-Amour

unread,
Jan 6, 2016, 2:30:25 PM1/6/16
to Benjamin Greenman, Vincent St-Amour, Racket Users
On Tue, 05 Jan 2016 22:50:48 -0600,
Benjamin Greenman wrote:
>
> Sounds great! Two suggestions:
>
> 1. A `raco contract-profile` command to run the main submodule in a
> file.

I agree, that would be a great addidion!

> 2. Make even less output by default -- just the overall runtime &
> by-callee contracts.
>
> But this is just my opinion :)

Sure, that's reasonable.

Thanks for the feedback!

Vincent

Vincent St-Amour

unread,
Jan 7, 2016, 3:54:25 PM1/7/16
to Racket Users

I just pushed the new UI, along with Ben's suggestions.

Give it a try, and let me know what you think!

Vincent
Reply all
Reply to author
Forward
0 new messages