Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问适用场景 #18

Open
luluxiao94 opened this issue Feb 20, 2022 · 2 comments
Open

请问适用场景 #18

luluxiao94 opened this issue Feb 20, 2022 · 2 comments

Comments

@luluxiao94
Copy link

  1. 如果项目中GC频率较低,或者说运行时golang的GC对项目不会产生任何抖动,是否也没太大必要使用XMM这个项目来手动管理内存?
  2. 这个项目是否主要适用于小对象过多造成的频繁GC导致cpu抖动这种场景,这种场景下手动管理就可以避免这种情况了?
  3. 比如说,像一个长期使用的sync.Pool,是否使用XMM管理就比较合适?
@heiyeluren
Copy link
Owner

  1. 如果完全没有gc问题可以不考虑,常规就是CURD的程序,无所谓是否gc的问题。

  2. 这个项目适用对象多,另外有一些需要自己独立管理内存的场景:
    a. 其实很多人有需要自己独立控制内存,比如有一个内存我想常驻,不想被没事gc就扫描一下,就可以使用xmm;
    b. 我举个例子,比如我一个配置文件,会热更新,并且经常会被程序访问这个配置文件中的内容,那我就可以放xmm里,gc不会管它。
    c. 临时变量这种,用完就扔的没必要用xmm
    d. 延展一点说:如果你有一些想要本地Cache的东西,建议采用XMM,不会频繁被gc扫描;比如有些数据要热加载,然后长期会存在,程序自己会更新,那就用XMM非常合适。

  3. 对的,就是处理类似于使用 sync.Pool 或者自己用一个[]byte存储数据不被gc的场景

希望能够帮到您~

@luluxiao94
Copy link
Author

感谢解答~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants