Skip to content

Commit 3904015

Browse files
committed
Update public notes
1 parent b3a05e0 commit 3904015

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed
162 KB
Loading

content/对象池 Object Pool.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## 问题 / 用途
2+
在某些时候会遇到需要频繁创建和释放对象的场景(例如游戏中),对象的频繁创建和释放会导致内存碎片的产生和内存空间的频繁分配,从而降低性能。
3+
4+
对象池的作用便是解决这个问题。
5+
6+
## 思路 / 原理
7+
对象池的解决方法是通过一个「缓存」来提前存储需要用的实例,在需要的时候从缓存中「取出」,使用结束后再「存回」对象池中。
8+
9+
我们可以使用数组或者栈等内存连续的数据结构来实现「缓存」,在想要「取出一个实例」时,结构中的对象引用给出去,并在使用结束后调用「存回」让实例不可用并清除使用的数据。
10+
11+
如图:
12+
![[Pasted image 20250312155216.png]]
13+
14+
## 实现
15+
有空再写。

0 commit comments

Comments
 (0)