From d4627f82d5eadd5eff0ac4d36366a4cbc22318e7 Mon Sep 17 00:00:00 2001 From: Jokul Date: Mon, 20 Jul 2026 23:23:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B5=81=E9=87=8F=E6=B3=A2=E5=8A=A8?= =?UTF-8?q?=E5=9B=BEY=E8=BD=B4=E5=8A=A8=E6=80=81=E9=80=82=E5=BA=94?= =?UTF-8?q?=E6=9C=80=E8=BF=91=E6=B4=BB=E5=8A=A8=EF=BC=8C=E5=B3=B0=E5=80=BC?= =?UTF-8?q?=E8=BF=87=E5=90=8E=E8=87=AA=E5=8A=A8=E7=BC=A9=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Y轴上限从全量5分钟缓冲改为最近60秒窗口计算 - 解决历史高峰值(如12MB/s下载)导致Y轴长期偏高、 当前低网速曲线被压到底部无法观察波动的问题 - 峰值滑出60秒窗口后Y轴自动缩小,始终为当前活动提供合适显示比例 --- package/components/TrafficChartWindow.qml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/package/components/TrafficChartWindow.qml b/package/components/TrafficChartWindow.qml index de26dfd..008580f 100644 --- a/package/components/TrafficChartWindow.qml +++ b/package/components/TrafficChartWindow.qml @@ -338,13 +338,17 @@ Window { var ul = root.applet ? root.applet.speedHistoryUpload : [] var n = dl.length - // ---- Y 轴上限计算(规范 §4.4)---- - // 1. vMax = 所有采样点 max(download, upload) - // 2. vMax == 0 时上限取 1024(1 KB/s)避免除零 - // 3. 否则取 vMax * 1.2 向上取整到 1/2/5 × 10^n 序列 + // ---- Y 轴上限计算(动态适应最近活动)---- + // 使用最近 60 秒的数据计算 Y 轴上限,而非全量 5 分钟缓冲。 + // 设计原因:若使用全量缓冲,当历史中存在大流量峰值(如 12MB/s 下载)时, + // 即使当前网速已降至 KB/s 级别,Y 轴仍保持高位,导致当前曲线被压到底部 + // 无法观察波动。改用 60 秒窗口后,峰值滑出窗口时 Y 轴自动缩小, + // 始终为当前活动提供合适的显示比例。 var vMax = 0 var i - for (i = 0; i < n; i++) { + var recentWindow = 60 // 秒,Y 轴基于最近 1 分钟的活动计算 + var recentStart = Math.max(0, n - recentWindow) + for (i = recentStart; i < n; i++) { if (dl[i].y > vMax) vMax = dl[i].y if (i < ul.length && ul[i].y > vMax) vMax = ul[i].y }