Revert "Add cleanup command"

This reverts commit 1e6ce2aa8a.
This commit is contained in:
Rodrigo Arias 2024-04-26 13:03:35 +02:00
parent 1e6ce2aa8a
commit a6683056ff

View File

@ -15,9 +15,6 @@
// exit(1); // exit(1);
//} //}
static const char *cleanup_cmd = NULL;
static char **bench_argv = NULL;
struct sampling { struct sampling {
int nmax; int nmax;
int nmin; int nmin;
@ -92,9 +89,6 @@ do_run(char *argv[], double *ptime)
close(pipefd[0]); close(pipefd[0]);
} }
if (cleanup_cmd != NULL)
system(cleanup_cmd);
return 0; return 0;
} }
@ -121,24 +115,24 @@ stats(struct sampling *s)
double se = stdev / sqrt(n); double se = stdev / sqrt(n);
double rse = se * 1.96 / mean; double rse = se * 1.96 / mean;
fprintf(stderr, "n=%d last=%e mean=%e stdev=%e se=%e rse=%e\n", fprintf(stderr, "\rn=%d last=%e mean=%e stdev=%e se=%e rse=%e",
s->n, s->last, mean, stdev, se, rse); s->n, s->last, mean, stdev, se, rse);
s->rse = rse; s->rse = rse;
} }
static int static int
should_stop(struct sampling *s) should_continue(struct sampling *s)
{ {
stats(s); stats(s);
if (s->n < s->nmin) if (s->n < s->nmin)
return 0;
if (s->rse * 100.0 < 1.0 /* % */)
return 0;
return 1; return 1;
if (s->rse * 100.0 > 1.0 /* % */)
return 1;
return 0;
} }
static void static void
@ -176,7 +170,7 @@ sample(char *argv[])
s.samples = calloc(s.nmax, sizeof(double)); s.samples = calloc(s.nmax, sizeof(double));
s.n = 0; s.n = 0;
while (!should_stop(&s)) { while (should_continue(&s)) {
double time; double time;
if (do_run(argv, &time) != 0) { if (do_run(argv, &time) != 0) {
err("failed to run benchmark"); err("failed to run benchmark");
@ -191,45 +185,12 @@ sample(char *argv[])
return 0; return 0;
} }
static void
usage(void)
{
fprintf(stderr, "c:h\n");
exit(1);
}
static void
parse_args(int argc, char *argv[])
{
int opt;
while ((opt = getopt(argc, argv, "c:h")) != -1) {
switch (opt) {
case 'c':
cleanup_cmd = optarg;
break;
case 'h':
default: /* '?' */
usage();
}
}
if (optind >= argc) {
err("bad usage: program");
usage();
}
bench_argv = &argv[optind];
}
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
(void) argc; (void) argc;
parse_args(argc, argv); if (sample(argv+1) != 0) {
if (sample(bench_argv) != 0) {
err("failed to sample the benchmark"); err("failed to sample the benchmark");
return 1; return 1;
} }