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]"