File: large_microbench.c

package info (click to toggle)
redis 5%3A8.0.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 21,920 kB
  • sloc: ansic: 217,146; tcl: 51,883; sh: 4,625; perl: 4,214; cpp: 3,568; python: 3,165; makefile: 2,055; ruby: 639; javascript: 30; csh: 7
file content (33 lines) | stat: -rw-r--r-- 709 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "test/jemalloc_test.h"
#include "test/bench.h"

static void
large_mallocx_free(void) {
	/*
	 * We go a bit larger than the large minclass on its own to better
	 * expose costs from things like zeroing.
	 */
	void *p = mallocx(SC_LARGE_MINCLASS, MALLOCX_TCACHE_NONE);
	assert_ptr_not_null(p, "mallocx shouldn't fail");
	free(p);
}

static void
small_mallocx_free(void) {
	void *p = mallocx(16, 0);
	assert_ptr_not_null(p, "mallocx shouldn't fail");
	free(p);
}

TEST_BEGIN(test_large_vs_small) {
	compare_funcs(100*1000, 1*1000*1000, "large mallocx",
	    large_mallocx_free, "small mallocx", small_mallocx_free);
}
TEST_END

int
main(void) {
	return test_no_reentrancy(
	    test_large_vs_small);
}