From 6cfa9e0bf2ded1add3f018986268d9b1c3b119b6 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Fri, 24 May 2013 22:46:01 +0000 Subject: Performance improvements due to conditional parsing of IO data depending on selected fields. On my machine, this gives a ~20% improvement in htop process time use with the default config. --- ColumnsPanel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'ColumnsPanel.c') diff --git a/ColumnsPanel.c b/ColumnsPanel.c index 639d5e6d..f4eed99e 100644 --- a/ColumnsPanel.c +++ b/ColumnsPanel.c @@ -122,11 +122,14 @@ void ColumnsPanel_update(Panel* super) { // FIXME: this is crappily inefficient free(this->settings->pl->fields); this->settings->pl->fields = (ProcessField*) malloc(sizeof(ProcessField) * (size+1)); + this->settings->pl->flags = 0; for (int i = 0; i < size; i++) { char* text = ((ListItem*) Panel_get(super, i))->value; int j = ColumnsPanel_fieldNameToIndex(text); - if (j > 0) + if (j > 0) { this->settings->pl->fields[i] = j; + this->settings->pl->flags |= Process_fieldFlags[j]; + } } this->settings->pl->fields[size] = 0; } -- cgit v1.2.3