首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从linux进程中释放内存?

从linux进程中释放内存?
EN

Stack Overflow用户
提问于 2018-02-08 10:52:18
回答 1查看 987关注 0票数 1

当我运行pmap <pid>时,它给出了下面的列表

代码语言:javascript
复制
 00007f545bbc5000   1016K rw---    [ anon ]
 00007f545bd0c000     76K r-x--  /opt/openmrs/.openmrs-lib-cache/bahmnimsf/org/bytedeco/javacpp/linux-x86_64/libjniswscale.so
 00007f545bd1f000   2044K -----  /opt/openmrs/.openmrs-lib-cache/bahmnimsf/org/bytedeco/javacpp/linux-x86_64/libjniswscale.so
 00007f545bf1e000      4K rw---  /opt/openmrs/.openmrs-lib-cache/bahmnimsf/org/bytedeco/javacpp/linux-x86_64/libjniswscale.so
 00007f545c1bc000     52K r-x--  /opt/openmrs/.openmrs-lib-cache/bahmnimsf/org/bytedeco/javacpp/linux-x86_64/libjniswresample.so
 00007f545c3ca000     12K -----    [ anon ]
 00007f545c3cd000   1016K rw---    [ anon ]
 00007f545c4cd000   2048K rw---    [ anon ]
 00007f545c6cd000     12K -----    [ anon ]
 00007f545c6d0000   1016K rw---    [ anon ]
 00007f545c812000   1676K r--s-  /opt/openmrs/lucene/indexes/org.openmrs.PersonAttribute/_1y_Lucene41_0.pos
 00007f545c9b5000    108K r-x--  /opt/openmrs/.openmrs-lib-cache/bahmnimsf/org/bytedeco/javacpp/linux-x86_64/libswresample.so.2
 00007f545cbd2000     12K -----    [ anon ]
 00007f545cbd5000   1016K rw---    [ anon ]

当我运行命令时,我可以看到一个进程的细节。但是,在这里,[anon]正在正确地使用一些内存。我能释放那个记忆吗?

在这里我不想扼杀这个过程。只想把记忆从这个过程中解放出来。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 11:02:51

这取决于你的意思。最有可能的是,答案是否定的,因为这是给定进程不同部分的内存消耗列表。你通常对这些部分没有影响力。[ anon ]只是意味着这个部分没有可以显示的特定名称,因此它被声明为匿名。(它可以是进程的主程序,而不是进程中使用的某些库。)

释放该内存的唯一方法是结束该进程,无论是通过催促它终止(可能是通过GUI)还是通过发送信号(例如通过kill (1))。

任何其他将内存从外部释放出来的方法(在外部没有接口,但可以使用调试器或类似的接口)将意味着干预运行过程的事务。这是不可取的。进程迟早会访问它分配的内存。如果不再分配,它将被发送一个SEGFAULT,因此通常会终止。

也就是说,您可能正在考虑更改程序来分配更少的内存。在这种情况下,这个问题太宽泛了,很大程度上依赖于您正在查看的程序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48683728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档