@cryptotaxi247 / netdata-1 / commits / 21b6ddd57

likely/unlikely optimization for statsd flushes

Costa Tsaousis (ktsaou) committed Apr 16, 2018 at 18:06 UTC 21b6ddd57a8feb5461ff8af49b4204692c0d4eba
1 file changed +9 -9
src/statsd.c
+9 -9
@@ -1649,14 +1649,14 @@ static inline void statsd_flush_gauge(STATSD_METRIC *m) {
1649 debug(D_STATSD, "flushing gauge metric '%s'", m->name);
1650
1651 int updated = 0;
1652 - if(m->count && !m->reset) {
1652 + if(unlikely(!m->reset && m->count)) {
1653 m->last = (collected_number) (m->gauge.value * statsd.decimal_detail);
1654
1655 m->reset = 1;
1656 updated = 1;
1657 }
1658
1659 - if(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED)))
1659 + if(unlikely(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED))))
1660 statsd_private_chart_gauge(m);
1661 }
1662
@@ -1664,14 +1664,14 @@ static inline void statsd_flush_counter_or_meter(STATSD_METRIC *m, const char *d
1664 debug(D_STATSD, "flushing %s metric '%s'", dim, m->name);
1665
1666 int updated = 0;
1667 - if(m->count && !m->reset) {
1667 + if(unlikely(!m->reset && m->count)) {
1668 m->last = m->counter.value;
1669
1670 m->reset = 1;
1671 updated = 1;
1672 }
1673
1674 - if(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED)))
1674 + if(unlikely(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED))))
1675 statsd_private_chart_counter_or_meter(m, dim, family);
1676 }
1677
@@ -1687,14 +1687,14 @@ static inline void statsd_flush_set(STATSD_METRIC *m) {
1687 debug(D_STATSD, "flushing set metric '%s'", m->name);
1688
1689 int updated = 0;
1690 - if(m->count && !m->reset) {
1690 + if(unlikely(!m->reset && m->count)) {
1691 m->last = (collected_number)m->set.unique;
1692
1693 m->reset = 1;
1694 updated = 1;
1695 }
1696
1697 - if(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED)))
1697 + if(unlikely(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED))))
1698 statsd_private_chart_set(m);
1699 }
1700
@@ -1720,7 +1720,7 @@ static inline void statsd_flush_timer_or_histogram(STATSD_METRIC *m, const char
1720 }
1721
1722 int updated = 0;
1723 - if(m->count && !m->reset && m->histogram.ext->used > 0) {
1723 + if(unlikely(!m->reset && m->count && m->histogram.ext->used > 0)) {
1724 size_t len = m->histogram.ext->used;
1725 LONG_DOUBLE *series = m->histogram.ext->values;
1726 sort_series(series, len);
@@ -1746,7 +1746,7 @@ static inline void statsd_flush_timer_or_histogram(STATSD_METRIC *m, const char
1746 updated = 1;
1747 }
1748
1749 - if(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED)))
1749 + if(unlikely(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED && (updated || !(m->options & STATSD_METRIC_OPTION_SHOW_GAPS_WHEN_NOT_COLLECTED))))
1750 statsd_private_chart_timer_or_histogram(m, dim, family, units);
1751
1752 netdata_mutex_unlock(&m->histogram.ext->mutex);
@@ -2051,7 +2051,7 @@ static inline void statsd_flush_index_metrics(STATSD_INDEX *index, void (*flush_
2051 }
2052
2053 if(unlikely(!(m->options & STATSD_METRIC_OPTION_PRIVATE_CHART_CHECKED))) {
2054 - if(statsd.private_charts >= statsd.max_private_charts_hard) {
2054 + if(unlikely(statsd.private_charts >= statsd.max_private_charts_hard)) {
2055 debug(D_STATSD, "STATSD: metric '%s' will not be charted, because the hard limit of the maximum number of charts has been reached.", m->name);
2056 info("STATSD: metric '%s' will not be charted, because the hard limit of the maximum number of charts (%zu) has been reached. Increase the number of charts by editing netdata.conf, [statsd] section.", m->name, statsd.max_private_charts);
2057 m->options &= ~STATSD_METRIC_OPTION_PRIVATE_CHART_ENABLED;