Commit f9d2b98
committed
v1.9.25: cache /system/dependencies (5s → 0ms, ~6000x speedup)
Caught during the v1.9.24 binary smoke test: /system/dependencies took
~6.5s on the first cold call because it runs 20+ importlib.import_module()
probes (torch, mediapipe, audiocraft, pyannote, onnxruntime, rembg,
realesrgan, gfpgan, insightface, ...) plus an ffmpeg -version subprocess
plus an ollama HTTP probe — all synchronously in one request. This
blocked the Settings tab render on first open.
Fix: module-level _deps_cache with threading.Lock + 60-second TTL in
routes/system.py. Cold call still pays the ~5s import tax once; every
subsequent call within the window returns from memory in <1ms.
Measured:
cold call: 6463 ms
warm call: 0 ms (~6000x speedup)
fresh=1: 22 ms (bypasses cache)
New ?fresh=1 query param lets the frontend force a re-check after an
install/uninstall finishes.1 parent 93b86be commit f9d2b98
19 files changed
Lines changed: 50 additions & 21 deletions
File tree
- extension
- com.opencut.panel
- CSXS
- client
- com.opencut.uxp
- installer/src/OpenCut.Installer
- Models
- Properties
- opencut
- routes
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
| 184 | + | |
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| |||
1067 | 1067 | | |
1068 | 1068 | | |
1069 | 1069 | | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
1070 | 1077 | | |
1071 | 1078 | | |
1072 | 1079 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
158 | | - | |
| 158 | + | |
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3524 | 3524 | | |
3525 | 3525 | | |
3526 | 3526 | | |
3527 | | - | |
| 3527 | + | |
3528 | 3528 | | |
3529 | 3529 | | |
3530 | 3530 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
0 commit comments