Skip to content

Commit 0d08bdd

Browse files
committed
document profiling
1 parent 46a6bef commit 0d08bdd

2 files changed

Lines changed: 34 additions & 1 deletion

File tree

‎_pages/plugins/snt/big-data.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,5 @@ BVV's 3D renderer requires a multi-resolution pyramid, and a single GPU texture
111111
## See Also
112112

113113
- [SNT Stream](./snt-stream): Tracing on streamed data, differences from in-core tracing, channel unmixing, materialized crops, and editing
114+
- [Profiling SNT](./extending#profiling-snt): Monitoring latencies and performance to fine-tune big-data loading
114115
- [Key Shortcuts](./key-shortcuts): Shortcuts for both traditional and streamed canvases

‎_pages/plugins/snt/extending.md‎

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,43 @@ To use SNT as a software library in your own project, simply add SNT as a maven
2121
<dependency>
2222
<groupId>org.morphonets</groupId>
2323
<artifactId>SNT</artifactId>
24-
<version>4.2.0</version> <!-- only required if pom-scijava is not being used as parent pom -->
24+
<version>5.0.21</version> <!-- only required if pom-scijava is not being used as parent pom -->
2525
</dependency>
2626
```
2727
See e.g., [this forum thread](https://forum.image.sc/t/minimal-autotrace-code-for-snt-java/51654/15) for a concrete example of SNT being used as a software library.
2828

29+
## Profiling SNT
30+
31+
You can profile SNT's ability to parse [Big Data](./big-data) using the following flags/parameters:
32+
33+
| Flag | Default | Effect |
34+
|---|---|---|
35+
| `snt.profile` | false | Master switch. Prints the summary table (timings, per-level `cell.load`, decoded MB, EDT stall counts) every few seconds |
36+
| `snt.profile.n5` | false | Also times every N5/Zarr reader call, e.g. `n5.readChunk` and peak concurrent reads. Needs `snt.profile` |
37+
| `snt.profile.slow` | false | Logs each slow call as it happens (highly verbose) |
38+
| `snt.profile.edt` | false | Starts the EDT stall monitor |
39+
| `snt.profile.edt.dump` | false | On a stall, dumps the EDT's stack trace. Needs `snt.profile.edt` |
40+
| `snt.profile.slowMs` | 30 | Threshold for "slow call" logging |
41+
| `snt.profile.stallMs` | 150 | How long the EDT must be unresponsive to count as a stall |
42+
| `snt.profile.reportSec` | 10 | Seconds between summary tables |
43+
44+
### BVV Streaming
45+
46+
| Flag | Default | Effect |
47+
|---|---|---|
48+
| `snt.bvv.fetchers` | 64 remote, cores-1 local | Number of tile fetcher threads. It overrides the Preferences entry |
49+
| `snt.bvv.maxCell` | 256 | Upper limit for the cell size, which otherwise matches the chunk size |
50+
| `snt.bvv.noQueueSync` | false | Turns off queue sync (for comparison runs) |
51+
| `snt.bvv.levelPriority` | false | Enables coarse-levels-first priorities (experimental) |
52+
| `snt.bvv.moveAA` | false | Keeps overlay anti-aliasing while the view is moving |
53+
54+
You can pass each as _-Dname=value_ pairs to the JVM startup, e.g.:
55+
56+
```bash
57+
cd /path/to/fiji/folder
58+
./fiji -Dsnt.profile=true -Dsnt.profile.n5=true -Dsnt.profile.edt=true -Dsnt.bvv.fetchers=64 -Dsnt.bvv.flatPriority=true
59+
```
60+
2961

3062
## Tubular Geodesics
3163
The Tubular Geodesics plugins were developed several years ago for [Simple Neurite Tracer](/plugins/snt/faq#what-is-the-difference-between-snt-and-simple-neurite-tracer) but remain functional in modern [SNT](/plugins/snt). They can be installed manually as an SNT add-on. Once installed, they allow you to trace on a filtered-version of your image in which neuronal processes (or other tubular structures) are significantly enhanced using [ITK](/software/itk) segmentation. More details on the following pages:

0 commit comments

Comments
 (0)