Commit Graph

20 Commits

Author SHA1 Message Date
fengge 62cb78167d 优化 2026-06-02 16:16:15 +08:00
fengge 4465887c96 内存优化: 修复 PTT 静态集合无界增长导致的内存泄漏风险
【问题背景】
CallBackResolution.java 中两个 static 集合 (memberInfoDtos、groupInfos)
用于暂存 PTT 引擎回调的群组/群成员信息。原实现使用 ArrayList/LinkedList,
仅在收到 groupNo==1 / memberNo==1 的边界事件时调用 clear()。

【潜在风险】
1. 若服务端漏发边界事件 (1) 或中途断流,列表将无限增长
2. 长周期运行 (消防值守台常驻) 时,Heap 中堆积大量 DTO 对象
3. 在 Android 低内存设备上 (armeabi-v7a 32位机型) 极易触发 OOM
4. 即使后续收到 clear 信号,GC 压力也会显著增加

【修复方案】
1. 将 List<DTO> 改为 LinkedHashMap<String, DTO>,以 id 作为 key:
   - 自动去重,避免同一成员/群组多次添加
   - 保持插入顺序,符合原有顺序遍历语义
2. 引入容量上限常量 MAX_GROUP_MEMBERS=500 / MAX_GROUP_INFOS=100
3. 每次 add 前检查 size,超限时移除最旧条目 (LRU 策略)
4. 同步更新 CallBackUtil 中对应的方法签名,改为 Map<String, DTO> 参数

【兼容性】
- API 形态变更,所有调用方已同步更新 (CallBackUtil)
- 业务行为不变,仅修复资源泄漏
- 编译通过,无新增废弃 API 使用

【影响范围】
- CallBackResolution.java
- CallBackUtil.java
2026-06-02 13:09:08 +08:00
fengge 8bddca4996 bug修复: 修复PTT心跳线程池永久泄漏问题 2026-06-01 18:08:10 +08:00
844143714@qq,com ec90300ea7 日志
冲突
2026-05-22 20:19:46 +08:00
844143714@qq,com d022fa5f2d 日志
冲突
2026-05-21 20:43:23 +08:00
844143714@qq,com 1da8168558 临时群 2026-05-13 20:43:37 +08:00
844143714@qq,com d4801dd02c 临时群 2026-05-13 17:11:57 +08:00
844143714@qq,com 00f4c106a4 优化 2026-05-08 03:30:13 +08:00
844143714@qq,com ba37d3365e 优化 2026-05-07 14:50:19 +08:00
844143714@qq,com dd01f15497 优化 2026-05-07 13:37:51 +08:00
844143714@qq,com 3da7f99741 优化图标
状态
各种接口
2026-05-06 19:45:58 +08:00
844143714@qq,com 0a1f1228cb 实现 PTT 账号更新强制重启、补齐全量 PTT 接口及回调桥接 2026-04-30 01:31:40 +08:00
844143714@qq,com 2d7b00be45 优化应用退出与异常销毁流程、项目性能代码优化 2026-04-30 01:30:00 +08:00
844143714@qq,com e943361349 1 2026-04-30 00:50:59 +08:00
844143714@qq,com 0c49fd0faa 1 2026-04-28 21:33:15 +08:00
844143714@qq,com 803fcb38d2 ptt 2026-04-26 20:38:42 +08:00
fengge a957afd5d4 日志 2026-04-19 02:01:52 +08:00
fengge 722ece723f 修复问题 2026-04-18 23:24:00 +08:00
fengge cd0b247438 修复问题 2026-04-18 18:45:16 +08:00
fengge a79f0ca2a1 集成ptt 2026-04-02 19:28:13 +08:00