知识卡片
备忘录的生命周期与性能注意事项
内容
使用[[备忘录模式的定义与三个角色]]要注意两点:生命期管理(用完立即释放引用让GC回收); 性能考量(不要在高频循环里频繁创建备忘录,大对象反复创建消耗资源)。发散:这两点本质是 同一风险的两个角度——备忘录天生是用完即弃的临时快照,不加节制创建或长期持有就会拖累 性能和内存,这也是[[多备份的备忘录支持检查点机制]]需要限制Map上限的根本原因。
参考来源
- 位置:《设计模式之禅(第2版)》第24章《备忘录模式》(源文件:_epub-src/text/part0111.html)
- 结论依据:原文说明"备忘录创建出来就要在'最近'的代码中使用,要主动管理它的生命周期,建立就要使用,不使用就要立刻删除其引用……不要在频繁建立备份的场景中使用备忘录模式……大对象的建立是要消耗资源的"。
- 原始内容:备忘录创建出来就要在"最近"的代码中使用,要主动管理它的生命周期,建立就要使用,不使用就要立刻删除其引用,等待垃圾回收器对它的回收处理……不要在频繁建立备份的场景中使用备忘录模式(比如一个for循环中)。