git-svn-id: svn://db.shs.com.ru/libs@566 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -90,14 +90,59 @@ void QPIIntrospector::buildDumpSection(QTreeWidgetItem * pi, PIString & str) {
|
||||
}
|
||||
|
||||
|
||||
void QPIIntrospector::showInfo(const PIIntrospection::ProcessInfo & info) {
|
||||
void QPIIntrospector::showInfo() {
|
||||
PIString s;
|
||||
s << info.execCommand << "\n";
|
||||
s << info.execDateTime.toString() << "\n";
|
||||
s << info.OS_name << "(" << info.OS_version << ", " << info.architecture << ")\n";
|
||||
s << info.user << "\n";
|
||||
s << info.build_options.join(", ");
|
||||
s << info.build_options.join(", ") << "\n";
|
||||
s << "\n";
|
||||
s << "load k: " << PIString::fromNumber(stat.proc.cpu_load_system, 'f', 2) << " %\n";
|
||||
s << "load u: " << PIString::fromNumber(stat.proc.cpu_load_user, 'f', 2) << " %\n";
|
||||
s << "threads: " << stat.proc.threads << "\n";
|
||||
s << "memory usage: " << stat.proc.physical_memsize_readable;
|
||||
labelInfo->setText(PI2QString(s));
|
||||
int tlic = treeStat->topLevelItemCount();
|
||||
for (int i = tlic; i < stat.threads.size_s(); ++i)
|
||||
treeStat->addTopLevelItem(new QTreeWidgetItem());
|
||||
for (int i = tlic - 1; i >= stat.threads.size_s(); --i)
|
||||
delete treeStat->topLevelItem(i);
|
||||
tlic = piMini(treeStat->topLevelItemCount(), stat.threads.size_s());
|
||||
for (int i = 0; i < tlic; ++i) {
|
||||
QTreeWidgetItem * ti = treeStat->topLevelItem(i);
|
||||
PISystemMonitor::ThreadStats & ts(stat.threads[i]);
|
||||
ti->setText(0, QString::number(i + 1));
|
||||
ti->setText(1, QString::number(ts.id));
|
||||
ti->setText(2, PI2QString(ts.name));
|
||||
ti->setText(3, durationStr(ts.work_time));
|
||||
ti->setText(4, QString::number(ts.cpu_load_kernel, 'f', 2));
|
||||
ti->setText(5, QString::number(ts.cpu_load_user, 'f', 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QString QPIIntrospector::durationStr(PISystemTime t) {
|
||||
QString ret;
|
||||
double s = t.toSeconds();
|
||||
int d, h, m;
|
||||
d = piFloor(s / (24*60*60));
|
||||
if (d > 0) {
|
||||
ret += QString::number(d) + " d ";
|
||||
s -= d * (24*60*60);
|
||||
}
|
||||
h = piFloor(s / (60*60));
|
||||
if (h > 0) {
|
||||
ret += QString::number(h) + " h ";
|
||||
s -= h * (60*60);
|
||||
}
|
||||
m = piFloor(s / 60);
|
||||
if (m > 0) {
|
||||
ret += QString::number(m).rightJustified(2, '0') + " m ";
|
||||
s -= m * 60;
|
||||
}
|
||||
ret += QString::number(piFloor(s)).rightJustified(2, '0') + " s";
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -124,13 +169,10 @@ void QPIIntrospector::peerReceived(const PIString & from, const PIByteArray & da
|
||||
switch (cs.read()) {
|
||||
case PIIntrospection::itInfo: {
|
||||
cs.get(pba);
|
||||
PIIntrospection::ProcessInfo info;
|
||||
PIIntrospection::unpackInfo(pba, info);
|
||||
showInfo(info);
|
||||
} break;
|
||||
case PIIntrospection::itProcStat: {
|
||||
cs.get(pba);
|
||||
PIIntrospection::ProcessStat stat;
|
||||
PIIntrospection::unpackProcStat(pba, stat);
|
||||
//showInfo(info);
|
||||
} break;
|
||||
@@ -156,6 +198,7 @@ void QPIIntrospector::peerReceived(const PIString & from, const PIByteArray & da
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
showInfo();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user