# 按需加载与零噪音重构日志（Lazy-Load & Zero-Noise Log）

> 哲学：**不用不载，用完即释**。启动不为「可能用到」占资源；待机不产生任何日志/进程噪音。
> 范围：khyos 底座（`platform/khy_platform`、`platform/khy_os`）+ khyquant 应用（`software/khyquant`）
> + 共享后端服务（`services/backend`）。执行方式：无人值守、证据驱动、保守防呆。

---

## 一、模块依赖按需导入（【一】）

**审计结论：启动热路径本就零重度导入。**

- `khy` / `khyquant` 的 Python 入口（`cli.py`、`_bootstrap.py`、`__init__.py`）**只导入标准库**
  （os/sys/subprocess/json/time/threading/pathlib/datetime），架构是「壳层 shell-out 到 Node」，
  Python 侧不在启动期触碰任何重三方库。
- 所有 `pandas/numpy/sklearn/xgboost/lightgbm/joblib` 顶层导入**全部锁在 `services/*.py`、`ml/*.py`
  的独立 `__main__` 脚本里**——这些脚本由 Node 后端按需 `python xxx.py` 子进程拉起，其「启动」
  本身就是重活，顶层导入是必需且正确的（下沉进函数零启动收益、徒增噪音）。经核验**无任何模块在
  启动期 import 它们**（`khy_quant/__init__.py` 为空，无跨模块 `import services/ml`）。
- 可选依赖（akshare/adata/efinance 等）只在对应脚本运行时加载，缺失即该脚本降级，不影响底座与主流程。

→ 按防呆规则 #2「不确定就保守」：未对独立脚本做无收益的 import 下沉。

## 二、插件与应用按需唤醒（【二】）

**轻量注册 / 重量初始化，已落地为可用机制。**

- **发现阶段零导入**：`app_protocol.discover_apps()` 通过 `importlib.metadata` 只读 entry_point 的
  `name`/`value` 元数据与注册表 JSON，**绝不 `ep.load()`、绝不 import 应用包**。实测 discover 后
  `khy_quant.app` 不在 `sys.modules`。
- **新增懒激活入口** `app_protocol.load_app(name)`：仅在用户显式触发时才 `ep.load()` 加载应用工厂并
  实例化（重量级初始化此刻才发生）；任何失败优雅返 `None`，底座永不因单应用激活失败而崩溃。
- **触发命令** `khy apps activate <name>`：暴露上述触发路径。`khy apps` 列表/发现仍是纯元数据。
- 测试：`tests/unit/test_eco_app_protocol.py` 12 passed（+3 懒激活：触发才 load、未知返 None、失败降级）。

## 三、资源与数据按需挂载（【三】）

- **数据库懒连接**：`@khy/shared/config/database.js` 模块加载只 `new Sequelize(...)` 构造实例
  （Sequelize 实例化不建连），**无任何顶层 `authenticate/sync/connect` 副作用**；真正连接只发生在
  Express 服务器启动的异步 `initDatabase()`（服务器的合法首用）。纯 CLI 路径不碰 DB。→ 已满足，不改运行中服务。
- **模型/大文件**：维持既有架构约定「绝不打包、绝不预下载」，仅推理脚本运行时按需加载。一次性
  推理脚本退出即由 OS 回收内存，未画蛇添足加 gc（防呆 #2）。

## 四、零待机噪音污染（【四】）—— 本轮实际修复

后端 85 处 `setInterval` 逐一甄别：后台常驻单例**已普遍 `.unref()`**（与既往内存治理一致），
CLI/TUI 前台动画与请求/会话级定时器随前台进程退出、非待机靶点。真·outlier 两处已修：

| 文件 | 问题 | 修复 |
|---|---|---|
| `networkDetector.js` | 每 5 分钟无条件 `info` 日志（待机日均 ~288 行吐痰）+ 周期 interval 未 unref | 仅 online↔offline **状态跃迁**才记日志，稳态待机静默；interval `.unref()` |
| `credentialWatcherService.js` | 30s 轮询 fallback 定时器未 unref | 补 `.unref()`（等价 daemon=True，零进程残留） |

复核确认**已合规、未改动**：`memoryDreaming`/`keyHealthProbe`/`modelCuration`/`antivirusService`/
`securityGuardService`/`resourceGuard`（均已 unref，且仅在真实威胁/告警/失败时记日志，待机静默）；
`diagnosticEvents`（5s flush 空缓冲即返回，静默 + 已 unref）；`_bootstrap` 安装进度 watchdog
（npm install 长任务触发、daemon=True、Event 即时退出、仅静默>15s 才提示——合理保活，非待机噪音）。

## 五、提交记录（本轮）

1. `perf: 实现零待机噪音-networkDetector仅状态跃迁记日志并unref周期探测`
2. `perf: 实现零待机噪音-credentialWatcher轮询定时器unref`
3. `perf: 实现按需唤醒-应用懒激活入口load_app与khy apps activate`

## 六、未触碰（保守边界）

- 56 处 NO_UNREF 启发式命中里的 CLI/TUI 前台与请求级定时器：非待机靶点，前台退出即随之结束，
  盲加 unref 无益且可能误伤故意保活逻辑——按防呆 #1/#2 不动。
- 独立 `__main__` 脚本的顶层重度导入：是其正确形态，不做无收益下沉。
- 运行中 Express 服务器的 DB 启动连接：服务器合法首用，活体系统不夜间盲改。

> 系统现态：启动像猎豹般蛰伏（壳层零重载、发现零导入、DB 零预连），待机绝对干净（无周期日志、
> 后台定时器全 unref），触发才重量级唤醒。
