dsh performance triage: startup, panels and models
"DeepSeek Harness is slow" usually mixes three layers: startup, panel response, and model latency. Separating them is faster than reinstalling or disabling everything.
Three layers
Measure each with its own signal.
| Layer | Symptom | Measurement | Common cause |
|---|---|---|---|
| Startup | Slow to open | Time to usable interface | Plugins, cache, disk |
| Panel | Laggy switching | Time to render | Style and script plugins |
| Model | Slow replies | Time to first token | Network, model, quota |
A slow first token with a responsive UI points to model or network; a responsive model with laggy panels points to the client. Mixing them leads to upgrading or reinstalling. Measure once before changing; without a baseline, no result is attributable.
Startup
Startup time is easiest to measure: time from launch to usable.
- Record startup with the current plugin set for several runs.
- Disable groups of plugins, not all at once.
- Compare startup after each group.
- Check cache and disk state.
- Confirm improvement over several runs, not one.
Plugin quantity is not the only factor; startup hooks matter, and cold start differs from warm start. A few plugins injecting at startup can cost more than many inert ones; comparing the first launch with later ones mixes cache effects.
Panel and rendering
Panel lag is usually style or script plugins.
- Notice which operations lag: opening sessions, switching categories, scrolling.
- Disable style and animation plugins first.
- Compare page response.
- Check long lists and large images.
- Confirm the improvement persists.
Video wallpapers, particles, and complex sidebars are common causes, and browser cache or extensions interfere too. They block rendering; switching to static or disabling reduces load. Test in a clean browser profile before blaming DSH.
Model and network
Slow replies may have nothing to do with the client.
- Measure time to first token.
- Switch models or providers and compare.
- Check network latency and proxy.
- Check rate limiting and quota.
- Compare a short and a long session.
A slow first token means waiting for the model, not rendering, and long sessions add load. Switching plugins wastes time; measure model and network. A new session comparison separates session effects from model effects.
Disable and compare
The most reliable method, with strict controls.
- Record a baseline: startup, panel response, first token.
- Disable half the plugins and retest.
- Narrow the problematic half.
- Confirm with a single plugin.
- Restore and replace or remove.
Change only one variable at a time; disabling plugins while upgrading confuses the result. Half-splitting is faster than one by one: ten plugins need about four rounds, not ten.
Measure
Record numbers; "feels faster" is not evidence.
- Startup: three runs, take the median.
- Panel: repeat the same operation three times.
- Model: same prompt, same model, compare first token.
- Environment: version, plugin list, machine state.
- Changes: what changed, when, result.
Medians reduce noise, and the environment matters. Single measurements vary with disk, network, and load. Without version and plugin list, numbers cannot explain.
Common misjudgments
Four frequent wrong conclusions.
- "Reinstalling fixes it." Path and permissions may reset, but plugins and data remain; the cause may return.
- "Upgrading is always faster." Versions differ; unmeasured upgrades may be slower.
- "More plugins mean slower." Depends on hooks, not count.
- "Slow means the model is bad." First token latency also includes network and quota.
All four skip measurement. Numbers first, conclusions second.
Order of action
Measure, isolate, replace, then upgrade.
- Record baseline.
- Isolate by layer.
- Disable suspects in groups.
- Replace or remove confirmed plugins.
- Upgrade only when version is confirmed as the cause.
Upgrading is last because it changes many variables. It may fix things but makes attribution harder.
Next steps
Separate layers, measure, isolate. For plugin load failures, read What breaks after a plugin update. For output limits, read Output token limit and truncated replies. For quota issues, read request quota exhausted.
Sources: DeepSeek Harness docs, dsh CLI README, deepseek-harness repository
FAQ
When DeepSeek Harness feels slow, separate the layers. Slow first token with fast UI points to the model or network, while slow panel response points to the client or a plugin.
There is no fixed number of DeepSeek Harness plugins that is too many; measured impact matters. Disable in groups and compare startup and response times.
A long DeepSeek Harness session can slow everything down because history increases load and compaction. Compare a new session with the long one.
Upgrading DeepSeek Harness does not always improve performance, since versions differ and plugin compatibility changes. Record a baseline and compare.
Related Terms
- startup time
- Startup time is the interval from launch to usable interface; plugins, cache, and disk affect it.— DeepSeek Harness docs
- first token latency
- First token latency is the time from sending a request to receiving the first output, reflecting model and network conditions.— DeepSeek Harness docs
- render blocking
- Render blocking means a plugin's script or style delays interface drawing, making panels slow to respond.— DeepSeek Harness docs
- baseline measurement
- A baseline measurement records performance before changes for comparison, typically startup and response times.— DeepSeek Harness docs
Sources
- DeepSeek Harness docs· deepseek-harness
- dsh CLI README· deepseek-ai
- deepseek-harness repository· deepseek-ai