From: Sami Kerola Date: Sun, 25 Sep 2016 21:09:09 +0000 (+0100) Subject: performance: make reset in net.c more effective X-Git-Tag: v0.88~24^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b90a522f23167bd00062504803e94220937aba23;p=thirdparty%2Fmtr.git performance: make reset in net.c more effective Set all values in one go rather than each struct member separately. Notice that template initializer takes advantage of setting all missing values using value of the last item that was set. That makes them to be implicitly zero. Signed-off-by: Sami Kerola --- diff --git a/net.c b/net.c index 7b0f645..ef12d06 100644 --- a/net.c +++ b/net.c @@ -1492,34 +1492,21 @@ extern void net_reopen(struct mtr_ctl *ctl, struct hostent * addr) extern void net_reset(struct mtr_ctl *ctl) { + static const struct nethost template = { + .saved = { -2 }, + .saved_seq_offset = 2 - SAVED_PINGS, + .xmit = 0 + }; + int at; - int i; batch_at = ctl->fstTTL - 1; /* above replacedByMin */ numhosts = 10; for (at = 0; at < MaxHost; at++) { - host[at].xmit = 0; - host[at].transit = 0; - host[at].returned = 0; - host[at].sent = 0; - host[at].up = 0; - host[at].last = 0; - host[at].avg = 0; - host[at].best = 0; - host[at].worst = 0; - host[at].gmean = 0; - host[at].ssd = 0; - host[at].jitter = 0; - host[at].javg = 0; - host[at].jworst = 0; - host[at].jinta = 0; - for (i=0; i 0) {