Repository navigation
MacroHID 2.0 正式版
MacroHID 2.0.0 正式版
发布日期:2026-10-14。版本号为 2.0.0,Git 标签为 v2.0.0。对比基线为 GitHub 远端 v1.6.0 / 9d9ad8b,仅列出该版本之后的实际变化。
调度与播放
- 原生播放采用共享批次调度与预备工作线程,等待和输入提交不再占用整段计划的队列锁;保留批次顺序、键鼠按住时长和组合键保持时间。
- 单宏均衡档及极密集极限批次使用连续执行路径;预计算组合键边界并复用诊断工作区。间隔较大的极限批次保留两线程救援。
- 初次准备线程时预配置优先级、MMCSS 和亲和性;空闲阻塞等待时保留配置,减少孤立热键的重复准备。热键专用线程采用 AboveNormal,不提升整个进程至实时优先级。
- 重整播放控制器的取消、异步释放、关闭与运行状态生命周期;播放使用启动快照,改动宏库不会修改已开始的运行。
- 复用托管播放工作线程,对子宏及并行分支进行资源管理;改进条件动作准备缓存、重复评估缓存和清理行为。
- 增加原生队列、首次提交、异常批次等诊断,以及真实热键到独立接收进程的测试工具。实验中尾部退化的两项调度改写已撤回,不包含在本次发行中。
条件识别与编辑器
- 截图缓冲采用 BGRA 数据视图和租约管理,减少颜色转换、哈希及模板匹配路径的分配与复制。
- 改善条件监视缓存、动作计划复用和识别取消行为,保留原条件成立和触发语义。
- 调整动作面板、序列与条件动作显示,改善关联控件的缩放、提示、编辑响应和 JSON 更新。
- 宏库访问增加同步保护,监听准备及宏调用依赖使用一致快照。
- 补充带注释 JSON 的使用说明。
//注释读取能力在 1.6.0 已存在,本次不将它算作新增格式能力;可视化保存和导出仍不会保留注释。
YSR 锁帧动作与日志
- 增加 YSR 开启/恢复帧率动作,兼容旧切换动作。
- 统一运行日志、异常和锁帧诊断至
%APPDATA%\MacroHID\log,增加“打开日志”入口、异步写入、轮转与保留策略。
性能验证
以下是发布前同一执行实现的本机测量。版本号更新后进行了构建与功能回归,不将这些历史样本称为重新测量。
- 固定两个核心、五轮、每方案十万事件的单宏极限档假输入对照:最大迟到从 1,230.4µs 降至 893.4µs,合并 P99.9 为 2.7µs。五轮中四轮最大值改善,一轮退化;不能视为稳定最大值保证。
- 最终执行实现完成 30 次物理 F8 到独立 Win32 接收窗口:中位 3.461ms,最大 8.708ms。30 个物理样本不足估计 P99/P99.9。
- Win32/WPF 各 2,000 次自动热键实际输入接收,中位分别为 4.336/4.589ms,最大为 10.455/16.680ms。合计 4,030 次最终实现接收均成功,无丢失或重复。
- 物理测量从低层钩子入口计时,未覆盖机械开关、USB 传输、游戏动作与显示器响应;独立探针未覆盖完整主窗口进程筛选路线。
- 发行前托管功能回归、原生调度回归及帧时间比较器检查通过;逐项结果见发行验证记录。
以上数据来自一台 Windows 11 / Ryzen 9 7945HX 电脑。极限档持续自旋有明显 CPU 成本;未承诺跨设备表现、游戏帧时间或微秒级端到端。测量方法与更差的探索结果也保留在 实测报告。
打包与兼容性
- 一键生成安装包、便携包和自带 .NET 运行库的本地版;固定输出到
artifacts/packages和artifacts/local-run。 - 使用独立 staging 目录构建,成功后替换;旧产物保留备份,替换失败尝试回滚。便携包使用可移动的根目录启动脚本。
- 安装包和便携包均附带最新原生播放 DLL、Windows OCR 组件;发行提供
SHA256SUMS.txt。CI 增加原生回归与帧时间比较器检查,并更新发行文件上传路径。 - 保留已有宏库及用户配置路径,兼容既有宏格式和锁帧动作别名;未知解帧器版本不自动修改。
下载 MacroHID-Setup-x64.exe 或 MacroHID-Portable-x64.zip。两者需要 .NET 8 Desktop Runtime x64;源码打包生成的本地版自带运行库。安装步骤见 安装说明,构建方法见 打包说明。
完整代码对比:v1.6.0...v2.0.0。
本次发布检查
- Release 解决方案构建成功,388 项主程序测试通过。
- 原生调度回归通过,帧时间比较器 3 项测试通过,独立锁帧工具回归通过。
- 发行文件附带 SHA-256 校验值;原生 DLL 与性能测试版本一致。
- 本地可执行文件版本为 2.0.0.0,产品版本为 2.0.0。