|
@@ -339,5 +339,86 @@ int get_pid(const char* process_name, const char* user = nullptr)
|
|
|
}
|
|
|
|
|
|
|
|
|
+#include <QFile>
|
|
|
+int get_proc_mem_thread(unsigned int pid,unsigned int & nmem,unsigned int & nthread)
|
|
|
+{
|
|
|
+#ifdef IV_OS_UNIX
|
|
|
+ QFile xFile;
|
|
|
+ char strfilename[256];
|
|
|
+ snprintf(strfilename,256,"/proc/%d/status",pid);
|
|
|
+ xFile.setFileName(strfilename);
|
|
|
+ bool bMem = false;
|
|
|
+ bool bthread = false;
|
|
|
+ if(xFile.open(QIODevice::ReadOnly))
|
|
|
+ {
|
|
|
+ QByteArray ba = xFile.readAll();
|
|
|
+ QList<QByteArray> xlist = ba.split('\n');
|
|
|
+ int nsize = xlist.size();
|
|
|
+
|
|
|
+ if(nsize >=34)
|
|
|
+ {
|
|
|
+ QString strline(xlist.at(22));
|
|
|
+ QStringList baitem = strline.split(QRegExp("[\t ,;]+"));
|
|
|
+ if(baitem.size() >=2)
|
|
|
+ {
|
|
|
+ if(baitem[0] == "RssAnon:")
|
|
|
+ {
|
|
|
+ nmem = QString(baitem[1]).toLong();
|
|
|
+ bMem = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ strline = QString(xlist.at(33));
|
|
|
+ baitem = strline.split(QRegExp("[\t ,;]+"));
|
|
|
+ if(baitem.size() >=2)
|
|
|
+ {
|
|
|
+ if(baitem[0] == "Threads:")
|
|
|
+ {
|
|
|
+ nthread = QString(baitem[1]).toLong();
|
|
|
+ bthread = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if((bthread == false) || (bMem == false))
|
|
|
+ {
|
|
|
+ unsigned int i;
|
|
|
+ for(i=0;i<nsize;i++)
|
|
|
+ {
|
|
|
+ QString strline(xlist.at(i));
|
|
|
+ QStringList baitem = strline.split(QRegExp("[\t ,;]+"));
|
|
|
+ if(baitem.size() >=2)
|
|
|
+ {
|
|
|
+ if(baitem[0] == "RssAnon:")
|
|
|
+ {
|
|
|
+ nmem = QString(baitem[1]).toLong();
|
|
|
+ bMem = true;
|
|
|
+ }
|
|
|
+ if(baitem[0] == "Thread:")
|
|
|
+ {
|
|
|
+ nthread = QString(baitem[1]).toLong();
|
|
|
+ bthread = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(bMem && bthread)
|
|
|
+ {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ xFile.close();
|
|
|
+
|
|
|
+ return 0;
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef IV_OS_WIN
|
|
|
+ return 0;
|
|
|
+#endif
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|