GXTM2 ENGINE GXTM2 引擎内测筹备中 · 高性能 · 引擎永久免费(仅限非商业) 了解详情

V9.5:启动 7.90s → 0.40s,官方素材更新器 C++ 移植与下载链路修复

V9.5:启动 7.90s → 0.40s,官方素材更新器 C++ 移植与下载链路修复

本版重点是「快」和「稳」:启动提速约 94%,官方素材更新器完成 C++ 重写并联调修复,下载速度提升约 6–10 倍。

更新内容

  • 启动耗时 7.90s → 0.40s,累计提速约 94%
  • FtpPane 构造期不再阻塞连接 FTP,收益 -6.4 s
  • MirViewTab / SkillCalcTab 改为惰性创建,收益 -0.46 s
  • 彻底取消 FTP 开机自动连接(保留「快速连接」按钮),收益 -0.04 s
  • 不打包 UPX(避免启动时整体解压 + 杀软整包扫描),收益 -0.63 s
  • 新增启动画面 QSplashScreen,感知「秒开」
  • GxtHelperPane 惰性化 + 占位提示,点击不再卡顿
  • 打包方式对比(热启动各测 3 次):不打包 48.2 MB / 0.40 s;upx --best 31.6 MB / 0.58 s;upx --lzma 29.0 MB / 1.02 s
  • 把原版 C#(26 个源文件、10,635 行)完整移植为 C++:offoptions / offtypes / offscan / offclient / offtcp / offupdater / offui 共 12 个文件、约 409 KB
  • 「官方素材更新器」升级为顶级标签页,位于「定制功能」之后,独立可用
  • 新增独立可执行版 GXTUpdater.exe(GUI)与 GXTUpdater_console.exe(控制台排查用),方便单独发给玩家
  • 独立版实测连续运行 45 秒稳定,内存恒定 27.6 MB,stdout/stderr 全空
  • 修复素材打开空白:WriteWzx / WriteNewWzl 头部偏移 44 处必须写入记录数,原先写成全 0 导致游戏读出 0 条(共修 4 处)
  • 修复 GUI「立即更新」只更新第一个资源:改为传完整名单,并复用已缓存的清单直通,不再重新拉取与扫描
  • 修复下载完成后堆损坏(0xC0000374):多资源并发写共享进度表触发并发 rehash,改为所有共享字段加锁读写
  • 修复高索引(>65535)资源一条都下不来:按高索引分流到逐项完成帧协议(layout=Extended104)
  • 修复大资源「剩余数量一轮一轮不减少」:端点选择恒取同一节点,改为按 worker 槽位轮换并先剔除冷却节点
  • 修复点「停止」卡住:取消异常被当成普通失败吞掉,改为单独捕获并在线程汇合后检查,实测取消后 1.55 秒返回
  • 优化 UI 被日志压死:日志框限制最大块数(5000)+ 关闭撤销重做 + 去掉全量拷贝,仅在贴底时跟随滚动
  • 表格排序:状态为「更新中」的行排最前,其余按资源名;更新中的行整行加粗并用品牌蓝
  • 修复下载慢 6–10 倍:原版会缓存并复用 TCP 连接,移植版每 512 条重开连接并重新握手;改回连接复用后实测 anitiles1 2280 条 8.1 秒(251 条/秒)、cbohair 44000 条 14.2 秒(约 3100 条/秒)
  • 修复计划缓存未写回:下载阶段拿到空计划 → 静默「下载 0 条、失败 0 条」,而扫描统计却正常
  • 修复 QFile 未设置文件名就 open() → No file name specified
  • 修复响应位置队列取到的是副本,出队后真正映射未清空 → 读满后误报「服务器没有返回完整的请求索引」
  • 定位启动崩溃现象:挂载官方素材更新器页面后启动即崩,事件日志异常码集中在 Qt 的 .text.unlikely 段、符号带 [clone .cold],即未捕获异常逃出事件循环
  • 定位根因:在 worker(std::thread)线程里直接操作 UI 控件(进度条 marquee、重建表格),并与绘制并发
  • 修复:注册队列调用所需元类型;两个控件不再共用同一网格单元;数据成员在 worker 侧同步写,渲染/标签/进度一律回投 UI 线程,回投回调全部包 try/catch
  • 加固:线程对象赋值前兜底 detach,避免对仍 joinable 的对象赋值触发 std::terminate
  • 品牌统一为 GXT:窗口标题 GXT - <数据库>,版本号显示 GXT V9.5(C++版)
  • 图标更换为新版 gxt.ico(品牌蓝 #1f4e79 + 白字 GXT,6 档尺寸)
  • 新增一键构建脚本 build_and_run.ps1:编译主程序 + 重链独立版 + 自动启动
← 返回公告列表 下载最新版