C++ 程序C+中虚拟内存大小增加+;

C++ 程序C+中虚拟内存大小增加+;,c++,linux,C++,Linux,我有一个程序运行得非常好。但它在被杀死后的5-6天内都能正常工作SIGKILL。当我发现内存是个问题时,无论在哪里进行分配,我都会进行严格的释放 我正在使用linuxtop命令监视内存使用情况 到目前为止,该计划运行良好。但是,top命令中的VIRT虚拟内存属性缓慢增加。为什么会这样?我在任何需要的地方分发东西 提前感谢。:) 如果您在Linux上开发,请使用g++-Wall-g编译您的应用程序,对其进行改进,直到没有发出警告,并使用gdb调试内存泄漏 您可能会对使用 另请阅读。您可以使用 请尝

我有一个程序运行得非常好。但它在被杀死后的5-6天内都能正常工作
SIGKILL
。当我发现内存是个问题时,无论在哪里进行分配,我都会进行严格的释放

我正在使用linux
top
命令监视内存使用情况


到目前为止,该计划运行良好。但是,
top
命令中的
VIRT
虚拟内存属性缓慢增加。为什么会这样?我在任何需要的地方分发东西


提前感谢。:)

如果您在Linux上开发,请使用
g++-Wall-g
编译您的应用程序,对其进行改进,直到没有发出警告,并使用
gdb
调试内存泄漏

您可能会对使用


另请阅读。

您可以使用


请尝试运行应用程序一段时间,并检查任何可能的内存问题。

“我正在将所需的内容释放到所有需要的地方。”如果这是真的,那么您的程序只需要/随着时间的推移需要/更多内存,但我不相信这是真的,您应该通过一些泄漏检查器来运行它。您的程序中存在内存泄漏。使用valgrind查找内存泄漏。@PlasmaHH“随着时间的推移,程序只是/需要/更多内存”。这是什么意思?无论如何,一旦分配了内存,我就会释放内存。那么内存消耗就不应该发生了,对吗?是SIGKILL而不是SIGKELL,所以我编辑了it@Chaitanya:当您立即释放内存时,为什么要分配内存?您肯定有一些数据结构,这些数据结构包含在程序运行时更改/添加的元素,对于那些您肯定需要内存的元素。如果您没有它们,您可以用堆栈对象替换所有分配的内存…请告诉我,使用valgrind,(同时确保-O0)并在valgrind中使用
--leak check=full
(不过我非常赞成修复程序,而不是添加GC)。