请问适用场景
luluxiao94 opened this issue · comments
luluxiao94 commented
- 如果项目中GC频率较低,或者说运行时golang的GC对项目不会产生任何抖动,是否也没太大必要使用XMM这个项目来手动管理内存?
- 这个项目是否主要适用于小对象过多造成的频繁GC导致cpu抖动这种场景,这种场景下手动管理就可以避免这种情况了?
- 比如说,像一个长期使用的sync.Pool,是否使用XMM管理就比较合适?
黑夜路人 commented
-
如果完全没有gc问题可以不考虑,常规就是CURD的程序,无所谓是否gc的问题。
-
这个项目适用对象多,另外有一些需要自己独立管理内存的场景:
a. 其实很多人有需要自己独立控制内存,比如有一个内存我想常驻,不想被没事gc就扫描一下,就可以使用xmm;
b. 我举个例子,比如我一个配置文件,会热更新,并且经常会被程序访问这个配置文件中的内容,那我就可以放xmm里,gc不会管它。
c. 临时变量这种,用完就扔的没必要用xmm
d. 延展一点说:如果你有一些想要本地Cache的东西,建议采用XMM,不会频繁被gc扫描;比如有些数据要热加载,然后长期会存在,程序自己会更新,那就用XMM非常合适。 -
对的,就是处理类似于使用 sync.Pool 或者自己用一个[]byte存储数据不被gc的场景
希望能够帮到您~
luluxiao94 commented
感谢解答~