perf(logviewer): 512 KB tail instead of 1 MB
1 MB (~6500 lines) fetched, split and re-rendered every second made the window lag. 512 KB (~3200 lines) keeps a useful backlog — double the original 256 KB — while staying responsive.
This commit is contained in:
+2
-2
@@ -3,11 +3,11 @@
|
|||||||
"version": "0.23.6",
|
"version": "0.23.6",
|
||||||
"date": "",
|
"date": "",
|
||||||
"en": [
|
"en": [
|
||||||
"Log viewer: the window now keeps about four times more history (1 MB instead of 256 KB, ~6500 lines). During a busy trace the oldest lines used to scroll out of the buffer while you were still reading them; the larger window holds them.",
|
"Log viewer: the window now keeps twice as much history (512 KB instead of 256 KB, ~3200 lines). During a busy trace the oldest lines used to scroll out of the buffer while you were still reading them; the larger window holds them.",
|
||||||
"Ultrabeam over a remote link: fixed intermittent connection drops, phantom frequency jumps and wrong element-length readings. Replies weren't matched to the command that asked for them, so on a slow link a status query could pick up a lingering reply meant for another command — reading, say, the antenna's status where element lengths were expected. Every reply is now matched to its request by sequence number, and stale replies are discarded."
|
"Ultrabeam over a remote link: fixed intermittent connection drops, phantom frequency jumps and wrong element-length readings. Replies weren't matched to the command that asked for them, so on a slow link a status query could pick up a lingering reply meant for another command — reading, say, the antenna's status where element lengths were expected. Every reply is now matched to its request by sequence number, and stale replies are discarded."
|
||||||
],
|
],
|
||||||
"fr": [
|
"fr": [
|
||||||
"Visionneuse de log : la fenêtre conserve environ quatre fois plus d'historique (1 Mo au lieu de 256 Ko, ~6500 lignes). Lors d'une trace chargée, les plus vieilles lignes défilaient hors du buffer pendant qu'on les lisait encore ; la fenêtre agrandie les garde.",
|
"Visionneuse de log : la fenêtre conserve deux fois plus d'historique (512 Ko au lieu de 256 Ko, ~3200 lignes). Lors d'une trace chargée, les plus vieilles lignes défilaient hors du buffer pendant qu'on les lisait encore ; la fenêtre agrandie les garde.",
|
||||||
"Ultrabeam en remote : coupures de connexion intermittentes, sauts de fréquence fantômes et longueurs d'éléments erronées corrigés. Les réponses n'étaient pas associées à la commande qui les demandait : sur un lien lent, une requête de statut pouvait récupérer une réponse traînante destinée à une autre commande — lisant par exemple le statut de l'antenne là où on attendait les longueurs d'éléments. Chaque réponse est désormais appariée à sa requête par numéro de séquence, et les réponses périmées sont ignorées."
|
"Ultrabeam en remote : coupures de connexion intermittentes, sauts de fréquence fantômes et longueurs d'éléments erronées corrigés. Les réponses n'étaient pas associées à la commande qui les demandait : sur un lien lent, une requête de statut pouvait récupérer une réponse traînante destinée à une autre commande — lisant par exemple le statut de l'antenne là où on attendait les longueurs d'éléments. Chaque réponse est désormais appariée à sa requête par numéro de séquence, et les réponses périmées sont ignorées."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,12 +21,13 @@ import { TailLogFile, GetLogFilePath } from '../../wailsjs/go/main/App';
|
|||||||
// 256 KB blob: with "cluster" or "acom" typed in, the window becomes exactly
|
// 256 KB blob: with "cluster" or "acom" typed in, the window becomes exactly
|
||||||
// the subsystem trace you would have grepped for.
|
// the subsystem trace you would have grepped for.
|
||||||
// • It polls only while open. A closed dialog costs nothing.
|
// • It polls only while open. A closed dialog costs nothing.
|
||||||
// 1 MB ≈ 6500 lines. The window is a sliding tail: once new lines push past it
|
// 512 KB ≈ 3200 lines. The window is a sliding tail: once new lines push past it
|
||||||
// the oldest fall out of the fetched text entirely, so a small buffer dropped
|
// the oldest fall out of the fetched text entirely, so a small buffer dropped
|
||||||
// lines the operator was still reading during a busy trace (CAT/cluster/antenna
|
// lines the operator was still reading during a busy trace (CAT/cluster/antenna
|
||||||
// polling). The backend caps this at 4 MB; 1 MB is a good balance against the
|
// polling). This is double the old 256 KB — 1 MB was tried but the per-second
|
||||||
// per-poll payload while open.
|
// fetch + split + re-render of ~6500 lines made the window lag. 512 KB keeps a
|
||||||
const TAIL_BYTES = 1024 * 1024;
|
// useful backlog while staying smooth. The backend caps this at 4 MB.
|
||||||
|
const TAIL_BYTES = 512 * 1024;
|
||||||
const POLL_MS = 1000;
|
const POLL_MS = 1000;
|
||||||
|
|
||||||
export function LogViewer({ open, onOpenChange }: { open: boolean; onOpenChange: (v: boolean) => void }) {
|
export function LogViewer({ open, onOpenChange }: { open: boolean; onOpenChange: (v: boolean) => void }) {
|
||||||
|
|||||||
Reference in New Issue
Block a user