/** memory-profile 配置(Tier-0/1/3),由 DeviceCapability 按运行时设备能力映射 */ export type MemoryTierId = 'tier0' | 'tier1' | 'tier3'; export interface MemoryTierConfig { hallPreloadDelaySec: number; idleIconsDelaySec: number; idleLongTailSec: number; enableLowMemoryDowngrade: boolean; enableTabBundleUnloadOnBattle: boolean; /** 切 Tab 时卸载非当前 Tab bundle(tier3 关闭保流畅) */ enableTabBundleUnloadOnSwitch: boolean; /** silent 预载队列:同档最多并行任务数(bundle/ui 独立项) */ silentPreloadParallel: number; /** silent 队列每帧时间预算(ms),与 ThermalGovernor hallLoadBudgetScale 相乘 */ silentBudgetMs: number; /** silent 定时器间隔(ms),与主循环无关 */ silentDownloadGapMs: number; /** 大厅 idle 后是否预载 HallWarmLongTailRes */ enableHallWarmLongTail: boolean; /** 退战保留 BattleRes 与战斗分包,供下一局复用(段位高频局;低端机关) */ enableBattleResRetain: boolean; } export const MEMORY_PROFILE = { defaultTier: 'tier0' as MemoryTierId, tiers: { tier0: { hallPreloadDelaySec: 0, idleIconsDelaySec: 0, idleLongTailSec: 3, enableLowMemoryDowngrade: true, enableTabBundleUnloadOnBattle: true, enableTabBundleUnloadOnSwitch: true, silentPreloadParallel: 1, silentBudgetMs: 4, silentDownloadGapMs: 120, enableHallWarmLongTail: false, enableBattleResRetain: false, }, tier1: { hallPreloadDelaySec: 0, idleIconsDelaySec: 0, idleLongTailSec: 3, enableLowMemoryDowngrade: true, enableTabBundleUnloadOnBattle: true, enableTabBundleUnloadOnSwitch: true, silentPreloadParallel: 1, silentBudgetMs: 6, silentDownloadGapMs: 60, enableHallWarmLongTail: true, enableBattleResRetain: true, }, tier3: { hallPreloadDelaySec: 1, idleIconsDelaySec: 0, idleLongTailSec: 3, enableLowMemoryDowngrade: false, enableTabBundleUnloadOnBattle: true, enableTabBundleUnloadOnSwitch: true, silentPreloadParallel: 2, silentBudgetMs: 12, silentDownloadGapMs: 30, enableHallWarmLongTail: true, enableBattleResRetain: true, }, } satisfies Record, };