Improve response time performance

- Don't check for duplicate node before adding to list
This commit is contained in:
Amin Ben Romdhane 2023-01-26 10:58:57 +00:00
parent da28b8474e
commit 05ace8f689
2 changed files with 24 additions and 11 deletions

View file

@ -255,6 +255,14 @@ int dm_entry_param_method(struct dmctx *ctx, int cmd, char *inparam, char *arg1,
{
int fault = 0;
#ifdef DM_DEBUG
time_t s; // Seconds
long ms; // Milliseconds
struct timespec tstart, tend;
clock_gettime(CLOCK_REALTIME, &tstart); // START TIME
#endif //DM_DEBUG
// Load dynamic objects and parameters
load_dynamic_arrays(ctx);
@ -326,6 +334,21 @@ int dm_entry_param_method(struct dmctx *ctx, int cmd, char *inparam, char *arg1,
}
dmuci_save();
#ifdef DM_DEBUG
clock_gettime(CLOCK_REALTIME, &tend); // END TIME
s = tend.tv_sec - tstart.tv_sec;
ms = (tend.tv_nsec - tstart.tv_nsec) / 1.0e6; // Convert nanoseconds to milliseconds
if (ms < 0) {
ms = 1000 + ms;
s--;
}
TRACE("-----------------------------\n");
TRACE("CMD: %d : PATH: %s :: End: %ld s : %ld ms\n", cmd, inparam, (long)s, ms);
TRACE("-----------------------------\n");
#endif //DM_DEBUG
return usp_fault_map(fault);
}

View file

@ -1088,19 +1088,9 @@ int get_empty(char *refparam, struct dmctx *ctx, void *data, char *instance, cha
void add_list_parameter(struct dmctx *ctx, char *param_name, char *param_data, char *param_type, char *additional_data)
{
struct dm_parameter *dm_parameter;
struct list_head *ilist = NULL;
list_for_each(ilist, &ctx->list_parameter) {
dm_parameter = list_entry(ilist, struct dm_parameter, list);
int cmp = DM_STRCMP(dm_parameter->name, param_name);
if (cmp == 0) {
return;
} else if (cmp > 0) {
break;
}
}
dm_parameter = dmcalloc(1, sizeof(struct dm_parameter));
_list_add(&dm_parameter->list, ilist->prev, ilist);
list_add_tail(&dm_parameter->list, &ctx->list_parameter);
dm_parameter->name = param_name;
dm_parameter->data = param_data;
dm_parameter->type = param_type;