On Thursday 16 October 2008 22:39:02 Poul-Henning Kamp wrote:
> Author: phk
> Date: Thu Oct 16 20:39:02 2008
> New Revision: 183960
> URL: http://svn.freebsd.org/changeset/base/183960
>
> Log:
>   Make ministat(1) vastly faster on huge datasets.
>
> Modified:
>   head/usr.bin/ministat/Makefile
>   head/usr.bin/ministat/ministat.c
...
>  static void
>  AddPoint(struct dataset *ds, double a)
>  {
> -     struct point *pp, *pp2;
> +     double *dp;
>
> -     pp = calloc(1, sizeof *pp);
> -     pp->val = a;
> -
> -     ds->n++;
> +     if (ds->n >= ds->lpoints) {
> +             dp = ds->points;
> +             ds->lpoints *= 4;
> +             ds->points = calloc(sizeof *ds->points, ds->lpoints);
> +             memcpy(ds->points, dp, sizeof *dp * ds->n);

+ free(dp);

???

> +     }
> +     ds->points[ds->n++] = a;
>       ds->sy += a;
>       ds->syy += a * a;
> -     if (TAILQ_EMPTY(&ds->list)) {
> -             TAILQ_INSERT_HEAD(&ds->list, pp, list);
> -             return;
> -     }
> -     TAILQ_FOREACH(pp2, &ds->list, list) {
> -             if (pp->val < pp2->val) {
> -                     TAILQ_INSERT_BEFORE(pp2, pp, list);
> -                     return;
> -             }
> -     }
> -     TAILQ_INSERT_TAIL(&ds->list, pp, list);
>  }

-- 
/"\  Best regards,                      | [EMAIL PROTECTED]
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | [EMAIL PROTECTED]
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to