adjust Guide to warn about performance measurement in DrRacket
This commit is contained in:
parent
0aefb8d43c
commit
00e17ab51f
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
@title[#:tag "performance"]{Performance}
|
@title[#:tag "performance"]{Performance}
|
||||||
|
|
||||||
|
@section-index["benchmarking"]
|
||||||
|
@section-index["speed"]
|
||||||
|
|
||||||
Alan Perlis famously quipped ``Lisp programmers know the value of
|
Alan Perlis famously quipped ``Lisp programmers know the value of
|
||||||
everything and the cost of nothing.'' A Racket programmer knows, for
|
everything and the cost of nothing.'' A Racket programmer knows, for
|
||||||
example, that a @racket[lambda] anywhere in a program produces a value
|
example, that a @racket[lambda] anywhere in a program produces a value
|
||||||
|
@ -20,6 +23,27 @@ and memory performance of Racket code.
|
||||||
|
|
||||||
@; ----------------------------------------------------------------------
|
@; ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
@section[#:tag "DrRacket-perf"]{Performance in DrRacket}
|
||||||
|
|
||||||
|
By default, DrRacket instruments programs for debugging, and
|
||||||
|
debugging instrumentation can significantly degrade performance for
|
||||||
|
some programs. Even when debugging is disabled through the
|
||||||
|
@onscreen{Choose Language...} dialog's @onscreen{Show Details} panel,
|
||||||
|
the @onscreen{Preserve stacktrace} checkbox is clicked by default,
|
||||||
|
which also affects performance. Disabling debugging and stacktrace
|
||||||
|
preservation provides performance results that are more consistent
|
||||||
|
with running in plain @exec{racket}.
|
||||||
|
|
||||||
|
Even so, DrRacket and programs developed within DrRacket use the same
|
||||||
|
Racket virtual machine, so garbage collection times (see
|
||||||
|
@secref["gc-perf"]) may be longer in DrRacket than when a program is
|
||||||
|
run by itself, and DrRacket threads may impede execution of program
|
||||||
|
threads. For the most reliable timing results for a program, run in
|
||||||
|
plain @exec{racket} instead of in the DrRacket development
|
||||||
|
environment.
|
||||||
|
|
||||||
|
@; ----------------------------------------------------------------------
|
||||||
|
|
||||||
@section[#:tag "JIT"]{The Bytecode and Just-in-Time (JIT) Compilers}
|
@section[#:tag "JIT"]{The Bytecode and Just-in-Time (JIT) Compilers}
|
||||||
|
|
||||||
Every definition or expression to be evaluated by Racket is compiled
|
Every definition or expression to be evaluated by Racket is compiled
|
||||||
|
|
|
@ -12,6 +12,11 @@ Typed Racket provides a type-driven optimizer that rewrites well-typed
|
||||||
programs to potentially make them faster. It should in no way make
|
programs to potentially make them faster. It should in no way make
|
||||||
your programs slower or unsafe.
|
your programs slower or unsafe.
|
||||||
|
|
||||||
|
@margin-note{For general information Racket performance and
|
||||||
|
benchmarking, see @secref[#:doc '(lib
|
||||||
|
"scribblings/guide/guide.scrbl")]{performance}.}
|
||||||
|
|
||||||
|
|
||||||
@section{Turning the optimizer off}
|
@section{Turning the optimizer off}
|
||||||
|
|
||||||
Typed Racket's optimizer is turned on by default. If you want to
|
Typed Racket's optimizer is turned on by default. If you want to
|
||||||
|
|
Loading…
Reference in New Issue
Block a user