コード例 #1
0
ファイル: timer.c プロジェクト: saltstar/smartnix
void
timer_ratio(timedelta_t *a, timedelta_t *b, char *buf, size_t buflen)
{
	uint64_t t0 = timer_usec(a);
	uint64_t t1 = timer_usec(b);
	uint64_t mult;
	size_t i = 0;
	size_t j, n;

	/* Whole. */
	n = malloc_snprintf(&buf[i], buflen-i, "%"FMTu64, t0 / t1);
	i += n;
	if (i >= buflen)
		return;
	mult = 1;
	for (j = 0; j < n; j++)
		mult *= 10;

	/* Decimal. */
	n = malloc_snprintf(&buf[i], buflen-i, ".");
	i += n;

	/* Fraction. */
	while (i < buflen-1) {
		uint64_t round = (i+1 == buflen-1 && ((t0 * mult * 10 / t1) % 10
		    >= 5)) ? 1 : 0;
		n = malloc_snprintf(&buf[i], buflen-i,
		    "%"FMTu64, (t0 * mult / t1) % 10 + round);
		i += n;
		mult *= 10;
	}
}
コード例 #2
0
ファイル: microbench.c プロジェクト: DiamondLovesYou/jemalloc
void
compare_funcs(uint64_t nwarmup, uint64_t niter, const char *name_a,
    void (*func_a), const char *name_b, void (*func_b))
{
	timedelta_t timer_a, timer_b;
	char ratio_buf[6];

	time_func(&timer_a, nwarmup, niter, func_a);
	time_func(&timer_b, nwarmup, niter, func_b);

	timer_ratio(&timer_a, &timer_b, ratio_buf, sizeof(ratio_buf));
	malloc_printf("%"PRIu64" iterations, %s=%"PRIu64"us, "
	    "%s=%"PRIu64"us, ratio=1:%s\n",
	    niter, name_a, timer_usec(&timer_a), name_b, timer_usec(&timer_b),
	    ratio_buf);
}
コード例 #3
0
ファイル: main.cpp プロジェクト: pdobrowo/libcs2
int main()
{
    // decomp
    plugin_ldpath(".");

    void *pl = plugin_load("libdecomp.so");

    if (!pl)
    {
        printf("missing plugin\n");
        return 1;
    }

    decomp3f_init_f pl_init = (decomp3f_init_f)plugin_fn(pl, DECOMP3F_INIT_F_SYM);
    decomp3f_make_f pl_make = (decomp3f_make_f)plugin_fn(pl, DECOMP3F_MAKE_F_SYM);
    decomp3f_clear_f pl_clear = (decomp3f_clear_f)plugin_fn(pl, DECOMP3F_CLEAR_F_SYM);

    struct decomp3f_s d;

    struct decompmesh3f_s dm;
    load_mesh(&dm, "../data/mushroom.off");

    pl_init(&d);

    uint64_t start = timer_usec();

    pl_make(&d, &dm);

    uint64_t end = timer_usec();

    printf("decomposition took %lu usecs; sub-meshes: %d\n", static_cast<unsigned long>(end - start), static_cast<int>(d.ms));

    pl_clear(&d);

    plugin_unload(pl);

    free(dm.f);
    free(dm.v);

    return 0;
}