Move racket/future/visualizer, racket/future/trace --> future-visualizer, future-visualizer/trace
This commit is contained in:
parent
a605183a0a
commit
b987be068e
|
@ -2,14 +2,14 @@
|
|||
(require racket/contract
|
||||
slideshow/pict
|
||||
racket/bool
|
||||
racket/future/trace
|
||||
future-visualizer/trace
|
||||
"private/visualizer-gui.rkt"
|
||||
"private/visualizer-drawing.rkt")
|
||||
|
||||
(provide visualize-futures
|
||||
(contract-out
|
||||
[show-visualizer (-> void?)]
|
||||
[show-visualizer (->* () (#:timeline (listof indexed-future-event?)) void?)]
|
||||
[visualize-futures-thunk ((-> any/c) . -> . any/c)]
|
||||
[show-visualizer-for-events ((listof indexed-future-event?) . -> . void?)]
|
||||
[timeline-pict (->i ([indexed-fevents (listof indexed-future-event?)])
|
||||
(#:x [x (or/c #f exact-nonnegative-integer?)]
|
||||
#:y [y (or/c #f exact-nonnegative-integer?)]
|
|
@ -9,8 +9,7 @@
|
|||
"display.rkt"
|
||||
"constants.rkt")
|
||||
|
||||
(provide show-visualizer
|
||||
show-visualizer-for-events)
|
||||
(provide show-visualizer)
|
||||
|
||||
;;rebuild-mouse-index : frame-info trace (listof segment) -> interval-map of (range --> interval-map)
|
||||
(define (rebuild-mouse-index frameinfo tr segs)
|
||||
|
@ -84,12 +83,11 @@
|
|||
(values (min screen-w DEF-WINDOW-WIDTH)
|
||||
(min screen-h DEF-WINDOW-HEIGHT)))
|
||||
|
||||
;;show-visualizer-for-events : (listof indexed-fevent) -> void
|
||||
(define (show-visualizer-for-events logs)
|
||||
;If for some reason the log is empty, error
|
||||
(when (empty? logs)
|
||||
(error 'show-visualizer "No future log messages found."))
|
||||
(define the-trace (build-trace logs))
|
||||
(define (show-visualizer #:timeline [timeline #f])
|
||||
(define the-tl (if timeline timeline (timeline-events)))
|
||||
(when (empty? the-tl)
|
||||
(error 'show-visualizer "No future log messages found."))
|
||||
(define the-trace (build-trace the-tl))
|
||||
(define-values (winw winh) (get-window-size))
|
||||
;The event segment we are currently mousing over
|
||||
(define hover-seg #f)
|
||||
|
@ -354,6 +352,3 @@
|
|||
(set! showing-create-graph (not showing-create-graph)))])
|
||||
|
||||
(send f show #t))
|
||||
|
||||
(define (show-visualizer)
|
||||
(show-visualizer-for-events (timeline-events)))
|
|
@ -4,7 +4,7 @@
|
|||
(provide (struct-out future-event)
|
||||
(struct-out indexed-future-event)
|
||||
trace-futures
|
||||
(contract-out
|
||||
(contract-out
|
||||
[start-performance-tracking! (-> void?)]
|
||||
[timeline-events (-> (listof indexed-future-event?))]
|
||||
[trace-futures-thunk ((-> any/c) . -> . (listof indexed-future-event?))]))
|
|
@ -1,11 +1,11 @@
|
|||
#lang scribble/doc
|
||||
@(require scribble/manual scribble/eval "guide-utils.rkt"
|
||||
(for-label racket/flonum racket/future))
|
||||
(for-label racket/flonum racket/future future-visualizer))
|
||||
|
||||
@(define future-eval (make-base-eval))
|
||||
@(interaction-eval #:eval future-eval (require racket/future
|
||||
racket/future/private/visualizer-drawing
|
||||
racket/future/private/visualizer-data))
|
||||
future-visualizer/private/visualizer-drawing
|
||||
future-visualizer/trace))
|
||||
|
||||
@title[#:tag "effective-futures"]{Parallelism with Futures}
|
||||
|
||||
|
@ -105,10 +105,10 @@ Unfortunately, attempting to run the two computations in parallel with
|
|||
(touch f)))
|
||||
]
|
||||
|
||||
To see why, use the @racketmodname[racket/future/visualizer], like this:
|
||||
To see why, use the @racketmodname[future-visualizer], like this:
|
||||
|
||||
@racketblock[
|
||||
(require racket/future/visualizer)
|
||||
(require future-visualizer)
|
||||
(visualize-futures
|
||||
(let ([f (future (lambda () (mandelbrot 10000000 62 501 1000)))])
|
||||
(list (mandelbrot 10000000 62 500 1000)
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#lang scribble/doc
|
||||
@(require "mz.rkt" (for-label racket/future racket/future/trace))
|
||||
@(require "mz.rkt" (for-label racket/future future-visualizer/trace))
|
||||
|
||||
@title[#:tag "futures-trace"]{Futures Tracing}
|
||||
|
||||
@guideintro["effective-futures"]{the future visualizer}
|
||||
|
||||
@defmodule[racket/future/trace]
|
||||
@defmodule[future-visualizer/trace]
|
||||
|
||||
The @deftech{futures trace} module exposes low-level information about
|
||||
the execution of parallel programs written using @racket[future].
|
||||
|
@ -22,7 +22,7 @@ the execution of parallel programs written using @racket[future].
|
|||
|
||||
@racketblock[
|
||||
(require racket/future
|
||||
racket/future/trace)
|
||||
future-visualizer/trace)
|
||||
|
||||
(trace-futures
|
||||
(let ([f (future (lambda () ...))])
|
||||
|
@ -34,7 +34,7 @@ the execution of parallel programs written using @racket[future].
|
|||
|
||||
@racketblock[
|
||||
(require racket/future
|
||||
racket/future/trace)
|
||||
future-visualizer/trace)
|
||||
|
||||
(start-performance-tracking!)
|
||||
(let ([f (future (lambda () ...))])
|
||||
|
@ -76,7 +76,7 @@ useful for debugging the performance of programs that use futures.
|
|||
Though textual log output can be viewed directly (or retrieved in
|
||||
code via @racket[trace-futures]), it is much
|
||||
easier to use the graphical profiler tool provided by
|
||||
@racketmodname[racket/future/visualizer].
|
||||
@racketmodname[future-visualizer].
|
||||
|
||||
In addition to its string message, each event logged for a future has
|
||||
a data value that is an instance of a @racket[future-event]
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#lang scribble/doc
|
||||
@(require "mz.rkt" (for-label racket/future/trace racket/future))
|
||||
@(require "mz.rkt" (for-label future-visualizer/trace racket/future))
|
||||
|
||||
@title[#:tag "futures-visualizer"]{Futures Visualizer}
|
||||
|
||||
@guideintro["effective-futures"]{the future visualizer}
|
||||
|
||||
@defmodule[racket/future/visualizer]
|
||||
@defmodule[future-visualizer]
|
||||
|
||||
The @deftech{futures visualizer} is a graphical profiling tool
|
||||
for parallel programs written using @racket[future]. The tool
|
||||
|
@ -27,7 +27,7 @@ at any point during the program's lifetime.
|
|||
|
||||
@racketblock[
|
||||
(require racket/future
|
||||
racket/future/visualizer)
|
||||
future-visualizer)
|
||||
|
||||
(visualize-futures
|
||||
(let ([f (future (lambda () ...))])
|
||||
|
@ -39,8 +39,8 @@ at any point during the program's lifetime.
|
|||
|
||||
@racketblock[
|
||||
(require racket/future
|
||||
racket/future/trace
|
||||
racket/future/visualizer)
|
||||
future-visualizer/trace
|
||||
future-visualizer)
|
||||
|
||||
(start-performance-tracking!)
|
||||
(let ([f (future (lambda () ...))])
|
||||
|
@ -51,10 +51,14 @@ at any point during the program's lifetime.
|
|||
]
|
||||
}
|
||||
|
||||
@defproc[(show-visualizer) void?]{
|
||||
Displays the profiler window. Calls to this
|
||||
function must be preceded by a call to @racket[start-performance-tracking!] (or can
|
||||
be avoided altogether by using either @racket[visualize-futures] or @racket[visualize-futures-thunk]).
|
||||
@defproc[(show-visualizer [#:timeline timeline (listof indexed-future-event?)]) void?]{
|
||||
Displays the visualizer window. If the function is called with no arguments,
|
||||
it must be preceded by a call to @racket[start-performance-tracking!] -- in which case
|
||||
the visualizer will show data for all events logged in between (via @racket[timeline-events]).
|
||||
Note that @racket[visualize-futures] and @racket[visualize-futures-thunk] are simpler alternatives to using these
|
||||
primitives directly.
|
||||
The @racket[timeline] argument can be used to show the visualizer for a previously-generated
|
||||
trace.
|
||||
}
|
||||
|
||||
@section[#:tag "future-visualizer-timeline"]{Execution Timeline}
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
(require rackunit
|
||||
racket/list
|
||||
racket/vector
|
||||
racket/future/private/visualizer-drawing
|
||||
racket/future/private/visualizer-data
|
||||
racket/future/private/display
|
||||
racket/future/private/graph-drawing)
|
||||
future-visualizer/private/visualizer-drawing
|
||||
future-visualizer/private/visualizer-data
|
||||
future-visualizer/private/display
|
||||
future-visualizer/private/graph-drawing)
|
||||
|
||||
(define (compile-trace-data logs)
|
||||
(define tr (build-trace logs))
|
||||
|
|
Loading…
Reference in New Issue
Block a user