该应用程序存在内存泄漏,因此作为临时解决方案,我将检查它需要多少内存,终止进程并重新启动应用程序。
有什么简单的方法可以做到这一点吗?
谢谢
您应该修复内存泄漏。无论如何,如果您想重新启动应用程序,您可以使用QProcess::startDetached
在新进程中运行应用程序实例并从中分离。之后,您应该退出应用程序。
这将重新启动您的应用程序:
QProcess process;
process.startDetached("myApp",QStringList());
qApp->quit();
这myApp
是应用程序的可执行文件的名称。在 Windows 上它可以是myApp.exe
.
您可以覆盖 new 和 delete 以保留程序的分配统计信息,然后当基于可用内存达到阈值时,abort()。然后在外部脚本中,您可以重新启动。
还可以在这里查看出色的 gimli 监视器:https ://bitbucket.org/wez/gimli/wiki/Monitor
要自行重新启动应用程序,请尝试:
#include <QApplication>
#include <QProcess>
...
// restart:
qApp->quit();
QProcess::startDetached(qApp->arguments()[0], qApp->arguments());