/** * 性能优化配置模块 * 集中管理所有性能相关的配置参数 */ // 轮询配置 export const POLLING_CONFIG = { MIN_INTERVAL: 10000, // 最小轮询间隔 10秒 MAX_INTERVAL: 15000, // 最大轮询间隔 15秒 RETRY_BACKOFF_MULTIPLIER: 1.5, // 重试退避倍数 MAX_RETRY_INTERVAL: 60000 // 最大重试间隔 60秒(失败时最长等待时间) } // 图片懒加载配置 export const LAZY_LOAD_CONFIG = { ENABLED: true, // 是否启用懒加载 THRESHOLD: 100, // 距离可视区域多少像素时开始加载 PLACEHOLDER_COLOR: '#f5f5f5', // 占位符颜色 FADE_IN_DURATION: 300 // 图片淡入动画时长(毫秒) } // 气泡动画配置 export const BUBBLE_CONFIG = { MAX_COUNT: 5, // 最大气泡数量 MIN_GENERATION_INTERVAL: 1000, // 最小生成间隔(毫秒) MAX_GENERATION_INTERVAL: 2500, // 最大生成间隔(毫秒) MIN_DURATION: 4000, // 最小动画时长(毫秒) MAX_DURATION: 6000, // 最大动画时长(毫秒) USE_GPU_ACCELERATION: true // 是否使用 GPU 加速 } // 缓存配置 export const CACHE_CONFIG = { SCREEN_SIZE_CACHE: true, // 是否缓存屏幕尺寸 PROGRESS_DATA_EXPIRY: 5 * 60 * 1000, // 进度数据缓存过期时间(5分钟) STALE_DATA_THRESHOLD: 30000 // 数据过时阈值(30秒) } // 资源加载配置 export const RESOURCE_CONFIG = { CRITICAL_LOAD_TIMEOUT: 3000, // 关键资源加载超时(毫秒) NON_CRITICAL_LOAD_DELAY: 1000, // 非关键资源延迟加载时间(毫秒) MAX_CONCURRENT_LOADS: 3, // 最大并发加载数 RETRY_COUNT: 2 // 加载失败重试次数 } // 开发/生产环境配置 export const ENV_CONFIG = { isDevelopment: process.env.NODE_ENV === 'development', isProduction: process.env.NODE_ENV === 'production' } // 性能监控配置 export const MONITOR_CONFIG = { // 全局开关:根据环境自动启用/禁用 // 开发环境默认启用,生产环境默认禁用 ENABLED: ENV_CONFIG.isDevelopment, // 主开关 // 手动控制开关(优先级高于 ENABLED) // 设置为 true 强制启用,false 强制禁用,null 使用 ENABLED 的值 FORCE_ENABLE: false, LOG_LEVEL: ENV_CONFIG.isDevelopment ? 'debug' : 'warn', // 日志级别: 'debug' | 'info' | 'warn' | 'error' TRACK_FPS: ENV_CONFIG.isDevelopment, // 是否追踪帧率(开发模式) TRACK_MEMORY: false, // 是否追踪内存使用(开发模式) // 自动打印报告(页面卸载时) AUTO_PRINT_REPORT: ENV_CONFIG.isDevelopment } /** * 获取当前环境的配置 * @returns {Object} 配置对象 */ export function getCurrentConfig() { return { polling: POLLING_CONFIG, lazyLoad: LAZY_LOAD_CONFIG, bubble: BUBBLE_CONFIG, cache: CACHE_CONFIG, resource: RESOURCE_CONFIG, monitor: MONITOR_CONFIG, env: ENV_CONFIG } } /** * 更新配置(用于运行时调整) * @param {string} category - 配置类别 * @param {Object} updates - 更新的配置项 */ export function updateConfig(category, updates) { const configs = { polling: POLLING_CONFIG, lazyLoad: LAZY_LOAD_CONFIG, bubble: BUBBLE_CONFIG, cache: CACHE_CONFIG, resource: RESOURCE_CONFIG, monitor: MONITOR_CONFIG } if (configs[category]) { Object.assign(configs[category], updates) console.log(`[性能配置] ${category} 已更新:`, configs[category]) } else { console.warn(`[性能配置] 未知的配置类别: ${category}`) } } /** * 重置为默认配置 */ export function resetConfig() { console.log('[性能配置] 重置为默认配置') // 重新导入默认值 Object.assign(POLLING_CONFIG, { MIN_INTERVAL: 10000, MAX_INTERVAL: 15000, RETRY_BACKOFF_MULTIPLIER: 1.5, MAX_RETRY_INTERVAL: 60000 }) Object.assign(LAZY_LOAD_CONFIG, { ENABLED: true, THRESHOLD: 100, PLACEHOLDER_COLOR: '#f5f5f5', FADE_IN_DURATION: 300 }) Object.assign(BUBBLE_CONFIG, { MAX_COUNT: 5, MIN_GENERATION_INTERVAL: 1000, MAX_GENERATION_INTERVAL: 2500, MIN_DURATION: 4000, MAX_DURATION: 6000, USE_GPU_ACCELERATION: true }) } export default { POLLING_CONFIG, LAZY_LOAD_CONFIG, BUBBLE_CONFIG, CACHE_CONFIG, RESOURCE_CONFIG, MONITOR_CONFIG, ENV_CONFIG, getCurrentConfig, updateConfig, resetConfig }