Skip to content

Releases: Real-king-Ph/taskbardynamic

v1.2.3

Choose a tag to compare

@Real-king-Ph Real-king-Ph released this 30 Sep 09:17

v1.2.3

新增

  • 新增 PrimoCache 专用悬浮提示:显示总读取速度、未中率和状态;不可用时显示具体原因。
  • 悬浮提示查询会维持 PrimoCache 惰性采样,不在 UI 线程调用 rxpcc。
  • 修正命中率窗口和发布状态文档,明确当前实现按最近 6 次成功采样滚动。

验证

  • Debug/Release × x64/x86:0 warning / 0 error。
  • Release x64 MSVC /analyze:0 告警。
  • x64 附件 SHA256:A2CAB605E803E0A6FB0E8D9FB1B2D34354B16CA07E7C1296140E8CF65D633DEB
  • x86 附件 SHA256:22EF931ED1F16C6AB8F987B1B243AC6F3827635D678DD823A038838BF4C80644

v1.2.2

Choose a tag to compare

@Real-king-Ph Real-king-Ph released this 24 Sep 02:48

v1.2.2

本版本集中修复 PrimoCache 采样就绪状态、外部命令解析健壮性与绘图窗口时钟问题。

缺陷修复

  • 修复启动或恢复显示后速率尚未就绪时仍可能显示 0.00B/s 或空闲前旧值的问题;首个采样间隔现在显示 --,完成两次采样后恢复数值。
  • 修复 rxpcc 输出中非法或缺失的 Total Read / Cached Read 仍可能被当成有效零值的问题;两个字段必须完整且可解析。
  • 为单个累计计数及多卷累加增加 uint64_t 溢出检查,异常输出会直接令本次采样失败。
  • 绘图滑动窗口改用 std::chrono::steady_clock 单调时钟,避免系统时间大幅调整影响历史极值。
  • 修正 DynamicInfo 中 lable_ 的拼写为 label_。

验证

  • Debug/Release × x64/x86 全部 0 warning / 0 error。
  • MSVC /analyze 无告警。
  • 解析器定向测试 15/15 通过。

v1.2.1 TrafficMonitor插件

Choose a tag to compare

@Real-king-Ph Real-king-Ph released this 23 Sep 08:47

v1.2.1 更新内容

本版本是 PrimoCache 显示项的功能改进与缺陷修复。

改进:命中率平滑

  • 命中率由「单个 5 秒区间的比值」改为「最近 30 秒窗口内的累计比值」,读取量很少时不再在 0% / 100% 之间跳变;
  • 只有整个 30 秒窗口内都没有读取时才显示 --(命中率没有分母),恢复读取后自动给出数值。

缺陷修复

  • 修复恢复显示后“多睡一次”导致首次数值要等约 10 秒的问题(现在约 5 秒);
  • 修复数字解析遇到千位分隔符被截断的问题(210,726,629,888 曾被解析成 210);
  • 命中率增加 0 ~ 100 钳位,避免计数错位时超过 100%;
  • 采样超时判断改用 GetTickCount64(),去掉 49 天溢出隐患;
  • 速率换算增加钳位(上限 1 TB/s)并处理 dt <= 0 / NaN,避免 double→uint64 转换溢出(未定义行为);
  • rxpcc.exe 路径改为构造时一次性解析,消除潜在数据竞争。

验证

  • 4 种配置 0 warning / 0 error;MSVC 静态分析(/analyze)无告警;
  • 单元测试 15/15(滚动窗口 9 项 + 速率换算 6 项)、解析器边界 7/7;
  • 真机回归:冷读时 hit rate 0.0% → 热读 9.4% → 21.6% → 40.2%(平滑变化)。

附件说明

文件 对应版本 大小 SHA256
taskbardynamic-x64.dll TrafficMonitor x64(64 位) 71168 字节 03338161e4d25d39ea705469df75dcadd5eb90a5f826096222012aa0b5c92869
taskbardynamic-x86.dll TrafficMonitor x86(32 位) 64512 字节 ff6d7402f6f305995b1abe5a2a6e6919359a53459e4eada0bc461bc3c2d04e90

使用说明

  1. 下载与主程序位数一致的 DLL,放入 TrafficMonitor 程序目录下的 plugins 文件夹;
  2. 重启 TrafficMonitor,在「选项 → 显示设置 / 任务栏窗口设置」中自行勾选需要的显示项(默认不勾选);
  3. PrimoCache 显示项需要以管理员身份运行 TrafficMonitor,否则不会注册。

⚠️ 从旧版本升级:若 plugins 里还留着旧的 taskbardynamic.dll,请先删除,避免新旧 DLL 同时加载。
提示:显示项标签由主程序缓存在 config.ini 的 [plugin_display_str_*] 段,改标签需要同时修改那里对应的行。

代码

v1.2 TrafficMonitor插件

Choose a tag to compare

@Real-king-Ph Real-king-Ph released this 23 Sep 05:43

v1.2 更新内容

本版本新增 PrimoCache 集成:可直接在任务栏 / 悬浮窗上查看磁盘缓存的命中情况。

新增显示项(默认不勾选)

名称 ID 标签 含义
primocache hit read speed PC_HIT_SPD 命中: 由缓存(L1 内存 / L2 SSD)服务的那部分读取
primocache miss read speed PC_MISS_SPD 未中: 回落到物理磁盘的那部分读取
primocache hit rate PC_HIT_RATE 命中率: 最近 5 秒区间的读命中率

实现要点

  • 通过 PrimoCache 自带的命令行工具 rxpcc perf 读取累计计数,两次采样求差得到速率(5 秒窗口)
  • 后台线程采样,UI 线程只读快照,不阻塞主程序
  • 惰性采样:仅当显示项被主程序绘制时才采样;连续 30 秒没有任何显示项被绘制则完全停止采样(零开销)
  • 容错:单次采样失败沿用上一次的数值;连续 2 次以上失败才显示 --;区间内没有读取时命中率显示 --
  • 可用性门控:未以管理员身份运行、或未安装 PrimoCache 时,这些显示项不会出现在显示项列表中

安装

  1. 下载与主程序位数一致的 DLL(x64 / x86)
  2. 放入 TrafficMonitor 程序目录下的 plugins 文件夹
  3. 重启 TrafficMonitor,在「选项 → 显示设置 / 任务栏窗口设置」中自行勾选需要的显示项(默认不勾选)

⚠️ 从旧版本升级:若 plugins 目录里还留着旧文件名的 taskbardynamic.dll,请先删除它,否则新旧两个 DLL 会同时被加载、显示项重复。
提示:显示项标签由主程序缓存在 config.ini 的 [plugin_display_str_*] 段;若要改标签,需要同时修改那里对应的行。
PrimoCache 显示项需要以管理员身份运行 TrafficMonitor(rxpcc.exe 需要管理员权限),否则不会注册。

附件说明

文件 对应版本 大小 SHA256
taskbardynamic-x64.dll TrafficMonitor x64(64 位) 71680 字节 5c8ca5bc295c6885130f99f0d253e6d06944877069b2814ba706ff8531efcf85
taskbardynamic-x86.dll TrafficMonitor x86(32 位) 65536 字节 d1f723636d5cab2cac24755fb698b58ad23e1a6a9e57207b0fa00c3721785c77

代码

  • 本次变更提交:7d4c733
  • 使用说明与实现细节见仓库 README

v1.1 TrafficMonitor插件

Choose a tag to compare

@Real-king-Ph Real-king-Ph released this 22 Sep 23:09

v1.1 更新内容

本版本重构了核心逻辑并修复多处缺陷,建议升级。

缺陷修复

  • 修复窗口内数值恒定(max == min)时 0/0 产生 NaN,导致资源占用图异常的问题
  • 修复网速文本被截断成畸形字符串(如 999.KB/s、1023.KB/s)的问题
  • 修复极值淘汰顺序错误,导致过期极值在窗口中多残留若干采样周期的问题
  • 修复首次采样残留 0 时刻伪极值,导致窗口最小值长期为 0 的问题

改进

  • 时间间隔改用 FILETIME 刻度精确计算,去除“每月按 30 天”的近似,跨月/跨年不再漂移
  • 绘图值钳位到 [0, 1],当前值超出窗口极值时也不会溢出
  • 单位换算统一为 1024 进制,并按数量级自动切换 B/s、KB/s、MB/s、GB/s
  • 显示项注册改为 AddItem 模板方法,新增显示项只需改 config
  • 补齐 override,消除 C4244 编译警告;GetInfo(TMI_MAX) 不再返回无意义字符串
  • 工程配置:x86 补齐 C++17 标准,四种配置统一开启 /MP;源码统一为 UTF-8 with BOM

附件说明

请选择与你的 TrafficMonitor 位数一致的 DLL。

文件 对应版本 大小 SHA256
taskbardynamic-x64.dll TrafficMonitor x64(64 位) 30720 字节 EFC095724FBB5DF8D8EEE0F673601708F5AE27FAF90445AA4AF9EC40805B742C
taskbardynamic-x86.dll TrafficMonitor x86(32 位) 26112 字节 E96FB7858C1AF13E46041318363974A75EBB24279BF72B208CF4D95A1624F540

安装

  1. 下载上面与主程序位数匹配的那一个 DLL
  2. 放入 TrafficMonitor 程序目录下的 plugins 文件夹
  3. 重启 TrafficMonitor,在「选项 → 显示设置 / 任务栏窗口设置」中勾选需要的显示项

⚠️ 从旧版本升级:若 plugins 里还留着旧版的 taskbardynamic.dll,请先删除它,否则新旧两个 DLL 会同时被加载,显示项会重复。
只放与主程序位数一致的那一个;位数不匹配的 DLL 无法被加载。
提供三个显示项:上传速度、下载速度、CPU 温度(均支持自适应资源占用图)

代码

  • 本次变更提交:5ad3f6e
  • 使用说明与架构文档见仓库 README