Qt C ++ перезапустить сам

В приложении происходит утечка памяти, поэтому в качестве временного решения я бы проверил, сколько памяти требуется, убил процесс и перезапустил приложение.

Есть ли простой способ сделать это?

Спасибо

-1

Решение

Вы должны исправить утечку памяти. В любом случае, если вы хотите перезапустить приложение, вы можете использовать QProcess::startDetached запустить экземпляр вашего приложения в новом процессе и отсоединиться от него. После этого вы должны выйти из приложения.

Это перезапустит ваше приложение:

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

qApp->quit();

Вот myApp Имя исполняемого файла приложения. На винде это может быть myApp.exe,

1

Другие решения

Вы можете переопределить new и delete, чтобы сохранить статистику распределения для программы, а затем, когда порог будет достигнут на основе доступного mem, abort (). Затем во внешнем скрипте вы можете перезапустить.

Также смотрите отличный монитор gimli, здесь: https://bitbucket.org/wez/gimli/wiki/Monitor

0

Чтобы перезапустить приложение самостоятельно, попробуйте:

#include <QApplication>
#include <QProcess>

...

// restart:
qApp->quit();
QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
0
По вопросам рекламы [email protected]