AzurLaneAutoScript低配性能优化指南:用更少资源跑稳碧蓝航线自动化
【免费下载链接】AzurLaneAutoScriptAzur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript
AzurLaneAutoScript 是一款面向碧蓝航线的开源自动化脚本,可以代跑委托、科研、大世界和日常任务。对低配设备来说,它真正的消耗来自频繁截图、图像识别和持续的任务轮询,而不是游戏本身。本文面向使用旧笔记本、低性能台式机或模拟器的用户,解决三个具体问题:CPU 占用过高导致系统卡顿、内存缓慢增长直到脚本崩溃、以及长任务(大世界、扫荡)执行中识别失败。阅读后你会得到一套可以直接落地的低配配置、一组判断优化是否生效的指标,以及遇到异常时的排查顺序。
先做诊断:把 AzurLaneAutoScript 的资源消耗拆成三个可控点
优化前先定位开销来源,否则调参数只是碰运气。脚本的资源消耗集中在三个环节,每个环节都有对应的日志特征和源码位置:
- 设备连接与截图。脚本每执行一步操作都要先截图再识别,这是 CPU 和内存的主要来源。截图方案的实现都在 module/device/ 下,不同方案(ADB、aScreenCap、DroidCast、nemu_ipc、ldopengl 等)的速度差异很大,选错方案会让低配机器在截图阶段就吃满一个核心。
- 图像识别。模板匹配和 OCR 都运行在每次截图结果上。截图越多、分辨率越大,这部分开销成倍放大。
- 任务调度。脚本在多个任务之间循环时,如果每次循环都触发一轮完整的界面操作,即使没有实际工作,设备连接层也会持续消耗资源。
如何快速判断瓶颈在哪一层
- 如果任务管理器中脚本进程 CPU 持续偏高,且日志里大量出现截图相关的输出,瓶颈在截图层。
- 如果 CPU 不高但操作明显变慢、点击后延迟很久才出现下一步,瓶颈多在连接层(ADB 通道拥塞)。
- 如果内存随运行时间线性上升、重启后恢复,优先怀疑日志与截图记录相关的缓存(详见后文排查章节)。
- 如果以上都正常但整体节奏缓慢,检查任务调度配置是否过于激进。
一套可落地的低配运行配置
以下配置入口都在 GUI 的 Alas 设置页,对应 module/config/ 中的参数定义,全部有内置安全区间,超出区间会被自动修正并打印警告。
模拟器与连接
- 模拟器分辨率固定为 1280x720。脚本强制要求这个分辨率,遇到其他尺寸会直接抛出接管错误,这是识别模板的前提。
Emulator.ScreenshotMethod(模拟器截图方案):低配机器建议先用auto,脚本会执行一次内置性能测试后自动切换到最快方案;也可以手动指定。MuMu 系列可试nemu_ipc或DroidCast_raw,雷电可试ldopengl,其余设备一般aScreenCap_nc或ADB_nc优于裸ADB。判断依据是日志中性能测试给出的各方案耗时排序。Emulator.AdbRestart:开启。检测不到设备时自动重启 adb 客户端,减少长时间运行后连接层失联导致的重试开销。Emulator.ScreenshotDedithering(去除图片色彩抖动):仅手机实机需要开启。它会对每张截图做一次约 40~60ms 的去噪处理,模拟器上关闭可以省掉这部分固定开销。
内置优化参数(Optimization 组)
ScreenshotInterval:两次截图之间的最小间隔,内置区间 0.1~0.3 秒。低配设备建议取 0.3,直接降低截图吞吐上限。CombatScreenshotInterval:战斗中的截图间隔,内置区间 0.3~1.0 秒。战斗帧变化慢,取 1.0 对流程几乎没有影响,但能显著降低战斗阶段的 CPU 占用。TaskHoardingDuration(囤积任务分钟数):触发任务后不立即执行,而是等待该时长、一次性批量执行,降低收菜期间的操作频率。低配挂机建议设 1~2。WhenTaskQueueEmpty(任务队列清空后):低配长挂建议close_game,无任务时直接关闭游戏进程,把模拟器侧的消耗也降下去;goto_main是中间档。
错误记录参数(Error 组)
SaveError保留异常截图便于排查,但每张都占内存和磁盘;低配设备建议Error.ScreenshotLength保持默认 1,只在需要复现问题时临时调大。
用截图、识别和调度做减法
配置之外,还有几个"减法式"调优点,按收益从大到小排列。
- 减少不必要的截图。识别失败后的重试循环是截图量的隐形放大器——同一个界面反复截图匹配,CPU 会一直高但流程不动。如果日志里出现短时间重复的同一模板匹配记录,问题在识别侧(模板过期、界面状态漂移),调参解决不了,应该去检查 assets/ 下对应语言的模板资源是否匹配当前游戏版本。
- 控制截图落盘频率。
SCREEN_SHOT_SAVE_INTERVAL控制调试截图的保存间隔,低配机器上应把该值调大或只在排错时保存,磁盘写入和 PNG 编码都会占用额外资源。 - 收缩单次任务覆盖面。一次跑满全部模块(委托+科研+大世界+演习)时,每个模块都会加载自己的模板集并维持完整的状态机。低配设备的稳定做法是把日常模块拆到不同的调度时段,让任一时刻只有一组模板活跃,内存峰值更平滑。
- 调度上留空档。
Scheduler.SuccessInterval等调度参数让任务之间留出空闲时间,空闲时脚本只做轻量轮询。配合TaskHoardingDuration,收菜类任务不再逐条立即处理。
如何判断优化是否生效:五个可核对的指标
优化是否有效不能凭感觉,建议按下面这张清单在同一个任务(例如固定跑一段大世界)下记录优化前后两次的数据:
| 指标 | 观察方式 | 参考判据 |
|---|---|---|
| 脚本进程 CPU 占用 | 任务管理器 | 空闲轮询期应回落到个位数;持续高企说明截图或识别仍在过密 |
| 内存峰值 | 任务管理器 | 观察趋势而非绝对值:运行 1 小时内应趋于平稳,线性增长才算异常 |
| 截图耗时 | 日志/性能测试 | 单次截图稳定落在所选方案的正常区间;明显变慢说明连接层拥塞 |
| 连续运行时长 | 日志时间戳 | 能稳定跨越一次完整委托周期而不触发接管/崩溃 |
| 识别失败次数 | 日志中的模板匹配失败与重试记录 | 同一界面反复失败超过 2~3 次即视为异常,与性能无关,需查模板 |
判断逻辑是:CPU 和截图耗时下降,但识别失败次数上升,说明间隔参数压得太狠,应把ScreenshotInterval往回调;CPU 没降但截图变慢,问题在连接方案而不是间隔参数。两项都改善且失败次数不变,配置才算达标。所有区间都以实际设备为准,表中只给判断方向,不给绝对承诺。
遇到异常时按顺序排查
按"先连接、再截图、再识别、最后调度"的顺序排,每一层的典型特征都不同:
- 连接层。日志出现
EmulatorNotRunningError、连续重试后接管,通常是模拟器未完全启动、adb 端口被占用或 MuMu 的"网络桥接"开着(脚本检测到会直接提示关闭)。处理:先重启模拟器,确认Emulator.Serial可被脚本检测到,再开启AdbRestart。 - 截图层。纯黑截图、分辨率不是 1280x720 的报错,说明当前截图方案在该模拟器上不工作。处理:回到
Emulator.ScreenshotMethod,换成性能测试中排第二的方案;MuMu X 用户注意版本要求(脚本会提示需要升级到指定版本以上)。 - 识别层。OCR 读数漂移、模板匹配失败次数上升,多见于游戏版本更新后 UI 变化。处理:核对脚本与游戏版本的匹配关系,更新资源模板;临时性识别失败(截图瞬间界面正在转场)可通过适当调大截图间隔缓解。
- 内存增长。进程内存随时间持续上升。处理:先确认是否开启了大量
Error.SaveError截图保留和调试截图落盘,关闭后观察趋势;若仍增长且重启后恢复,把异常时段的日志反馈给项目,这属于需要修复的泄漏而非配置问题。
把优化配置纳入长期维护
低配环境的稳定是维护出来的,不是一次配置的结果。建议做三件事:
- 固化配置并留备份。把调好的整套参数(截图方案、Optimization 组、Error 组)存成独立的配置文件,游戏大版本更新后脚本资源变动时,以备份为基线重新微调,而不是从零试错。参数结构可在 module/config/argument/ 中查阅,每个参数的含义都有中文说明(见 module/config/i18n/)。
- 定期跑一次性能测试。模拟器升级、系统打补丁都可能改变各截图方案的相对速度。用脚本内置的 工具 - 性能测试 复核当前方案是否仍是最快,发现劣化时换回次优方案即可,成本很低。
- 按固定周期重启。长挂场景下建议每 12~24 小时重启一次脚本进程,释放累积的临时状态;配合
WhenTaskQueueEmpty: close_game,夜间无任务时段让模拟器也进入低负载。 - 保留最小排错信息。
SaveError保持开启但ScreenshotLength保持 1,只在出现第 3 节第 3、4 类异常时临时加大截图保留数量。这样既排错,又不至于让记录本身变成新的资源消耗。
低配设备跑 AzurLaneAutoScript 的核心思路就一句:先让截图方案匹配模拟器,再用内置的间隔参数把吞吐压下来,最后用指标确认每一步改动都有效。按"诊断 → 配置 → 验证 → 维护"的循环走,旧设备也能维持长时间稳定的自动化运行。
【免费下载链接】AzurLaneAutoScriptAzur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考