-1

该应用程序存在内存泄漏,因此作为临时解决方案,我将检查它需要多少内存,终止进程并重新启动应用程序。

有什么简单的方法可以做到这一点吗?

谢谢

4

3 回答 3

1

您应该修复内存泄漏。无论如何,如果您想重新启动应用程序,您可以使用QProcess::startDetached在新进程中运行应用程序实例并从中分离。之后,您应该退出应用程序。

这将重新启动您的应用程序:

QProcess process;
process.startDetached("myApp",QStringList());

qApp->quit();

myApp是应用程序的可执行文件的名称。在 Windows 上它可以是myApp.exe.

于 2014-07-11T06:09:58.020 回答
0

您可以覆盖 new 和 delete 以保留程序的分配统计信息,然后当基于可用内存达到阈值时,abort()。然后在外部脚本中,您可以重新启动。

还可以在这里查看出色的 gimli 监视器:https ://bitbucket.org/wez/gimli/wiki/Monitor

于 2013-09-27T23:25:19.360 回答
0

要自行重新启动应用程序,请尝试:

#include <QApplication>
#include <QProcess>

...

// restart:
qApp->quit();
QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
于 2016-04-06T09:15:09.133 回答