entelechy benchGenerated
Measure a scene’s frames on one backend or several.
Synopsis
Section titled “Synopsis”bench <scene.esn>Description
Section titled “Description”Step the scene for –frames frames –repeat times on each backend and print the least of the runs, a millisecond a frame. The frames overlap the device as a window’s do: the next is made while the device runs this one. The first frame of all is thrown away: it compiles and allocates. –nodes measures every node as well, native operations included, as a window’s frame-data line does: on a device by its own clock beside the call on the frame’s thread, nothing waiting for either. Where the device keeps no clock it waits after each node, what measuring a node costs before it does anything taken off every line, and the sum says how the parts come to more than the whole, since a node runs alone there and a frame overlaps them. –json writes the measurement, and –compare reads one back and prints what changed since, which is how a change is shown to cost nothing.
| flag | Value | Repeats | Description |
|---|---|---|---|
--frames |
<n> |
no | Frames a run steps. |
--repeat |
<n> |
no | Runs on each backend. |
--rate |
<fps> |
no | Frames a second. |
--backend |
cpu|gpu|jit|all |
yes | A backend to measure on; all is every backend this build has. |
--nodes |
`` | no | Measures every node as well. |
--window |
<w>x<h>[@<scale>] |
no | The window a scene sized by window() fills, in pixels, with its scale factor. |
--json |
<file> |
no | Writes the measurement to a file. |
--compare |
<file> |
no | Prints what changed since a measurement written by –json. |
--library |
<dir|file> |
no | Kernels the scene uses beside its own. |
--input |
<name>=<path> |
yes | Reads the scene’s input from the path given, a file or a directory as the input reads; an external the scene leaves to its caller bound to a picture file. |
--output |
<name>=<path> |
yes | Writes the scene’s output to the path given, a file or a directory as the output writes. |
--param |
<name>=<literal> |
yes | Sets a graph parameter. |
--no-fusion |
`` | no | Runs pointwise producers apart from their consumers. |
--allow |
file.read|file.write|file.delete=<dir>|clipboard.read|clipboard.write |
yes | Lets the scene read files from, write its outputs into, or remove and rename files in, a directory; or read and write the system’s clipboard. |
--grant |
<capability,...> |
no | The only capabilities a Kernel may be given. |
--memory |
<MB> |
no | Mebibytes of Fields the Host may hold at once (2048 by default). |
--work |
<M> |
no | Million loop iterations one run of a Kernel may take (4000 by default). |
--small |
<operations> |
no | Operations a run may take, by its elements and its Kernel’s typical work, and go to the processor rather than the device (400000 by default; 0 keeps every run on the device). |

