Skip to content

Release v1.14.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 05:58
· 8 commits to main since this release

v1.14.1 — 大量节点性能与兼容性更新

性能优化

  • 浅分页使用有界 Top-K 筛选,不再复制并排序所有匹配节点;仍返回精确总数,保留不分页调用。
  • 先执行低成本筛选,按需解析解锁 JSON,规则只规范化一次;国家/分组/来源统计使用维护中的索引计数。
  • 节点页不再消费高频任务进度状态,稳定列表回调;取消过时请求、保留乱序保护,250 ms 内完成事件合并刷新。
  • 拖动列宽只移动预览线,不逐帧重绘整张表格。
  • 智能分组预览共用一次候选快照和有效期 cutoff,保留统计、成员、排除原因和响应字段。

上游更新与兼容修复

  • 合入上游至 f361753:保留 VMess/VLESS WebSocket 的 Host 之外请求头,修复 Gemini 页面可用标记识别。
  • VMess 同时兼容 JSON 字符串和对象型 headers;未知扩展类型不会导致整条节点解析失败。
  • 升级 regexp2 2.9.0、GeoIP2 2.5.0、React/React DOM 19.3.1 及相关 Go/i18n/开发依赖。

性能证据(合成测试,不代表所有部署)

Windows amd64 / Intel i5-10210U,50,000 合成节点,每页 50 条,两次基准均值:

场景 优化前 优化后
首页模型查询 41.1 ms 14.5 ms
名称排序 89.2 ms 28.8 ms
名称搜索 207.9 ms 26.7 ms
分组+解锁规则 142.2 ms 32.0 ms
首页内存分配 26.0 MB/op 56.4 KB/op

真实 Edge + mocked API、100 行测试:20 次进度事件的页面/表格重绘 11→0;10 个完成事件的列表请求 10→1;快速搜索取消旧请求且保留最新结果。选择、列宽保存、桌面/手机明暗主题检查通过。

兼容性和限制

  • 相同主排序值现在按 ID 升序稳定排列;无效延迟/速度仍在末尾。
  • 无数据库迁移或权限变化;保留智能分组、原生 Loon 及其他 fork 功能。
  • 精确计数仍扫描缓存,深分页仍可能全量排序;不是 SQL 真分页。
  • 客户端取消请求不保证后端计算同步中断。
  • -race 未在本机运行(CGO/C 编译器不可用);不宣称已通过。

验证

全量 Go 测试、golangci-lint、前端 lint/生产构建、分页/筛选/并发缓存/排序/索引/智能分组回归测试均通过。前端存在既有非阻塞格式及构建警告。详见仓库中英文 CHANGELOG 和 development 文档。

Docker

ghcr.io/linux-jin/sublink-pro:v1.14.1
ghcr.io/linux-jin/sublink-pro:latest

支持 Linux amd64 / arm64 / armv7 / 386;另附 Linux、Windows、macOS 共 8 个二进制安装包。


English summary

  • Bounded shallow pagination with exact totals, lazy unlock parsing, indexed counts and deterministic ID tie-breaking.
  • Isolated progress rendering, cancellable stale list requests, coalesced completion refreshes and lightweight column-resize previews.
  • Single candidate snapshot/cutoff for smart-group previews, without changing eligibility or response fields.
  • Upstream sync through f361753, VMess/VLESS WS header preservation, Gemini marker fixes and dependency updates; object-shaped VMess headers remain compatible.
  • No database migration or permission change. Synthetic benchmarks exclude network latency and do not guarantee production speedups. Deep pages still sort full matches; client cancellation is not server cancellation. Local race detection was unavailable.