summaryrefslogtreecommitdiff
path: root/ccan/tal/benchmark/speed.c
diff options
context:
space:
mode:
authorWilliam Casarin <jb55@jb55.com>2018-07-09 22:28:25 -0700
committerWilliam Casarin <jb55@jb55.com>2018-07-09 22:31:48 -0700
commit9593fc545950782ed75f12f53238b07885559b2b (patch)
tree9c7c2f7cbb427c54e9184cb61eedce737a6cbc6f /ccan/tal/benchmark/speed.c
parentbd8c223756d2f912526ecef53bae0cc8e0c63442 (diff)
remove ccan for now
Diffstat (limited to 'ccan/tal/benchmark/speed.c')
-rw-r--r--ccan/tal/benchmark/speed.c125
1 files changed, 0 insertions, 125 deletions
diff --git a/ccan/tal/benchmark/speed.c b/ccan/tal/benchmark/speed.c
deleted file mode 100644
index fd2d9cc..0000000
--- a/ccan/tal/benchmark/speed.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- Taken from samba/lib/talloc/testsuite.c: Unix SMB/CIFS implementation.
-
- local testing of talloc routines.
-
- Copyright (C) Andrew Tridgell 2004
-
- ** NOTE! The following LGPL license applies to the talloc
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 3 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-#include <ccan/talloc/talloc.h>
-#include <ccan/tal/tal.h>
-#include <ccan/tal/str/str.h>
-#include <ccan/time/time.h>
-#include <ccan/err/err.h>
-#include <string.h>
-
-#define LOOPS 1024
-
-int main(int argc, char *argv[])
-{
- void *ctx;
- unsigned count;
- int i, j;
- struct timeabs tv;
- void *p1, *p2[100], *p3[100];
- bool run_talloc = true, run_tal = true, run_malloc = true;
-
- if (argv[1]) {
- if (strcmp(argv[1], "--talloc") == 0)
- run_tal = run_malloc = false;
- else if (strcmp(argv[1], "--tal") == 0)
- run_talloc = run_malloc = false;
- else if (strcmp(argv[1], "--malloc") == 0)
- run_talloc = run_tal = false;
- else
- errx(1, "Bad flag %s", argv[1]);
- }
-
- if (!run_talloc)
- goto after_talloc;
-
- ctx = talloc_new(NULL);
- tv = time_now();
- count = 0;
- do {
- for (i=0;i<LOOPS;i++) {
- p1 = talloc_size(ctx, LOOPS % 128);
- for (j = 0; j < 100; j++) {
- p2[j] = talloc_strdup(p1, "foo bar");
- p3[j] = talloc_size(p1, 300);
- }
- talloc_free(p1);
- }
- count += (1 + 200) * LOOPS;
- } while (time_between(time_now(), tv).ts.tv_sec < 5);
-
- fprintf(stderr, "talloc: %.0f ops/sec\n", count/5.0);
-
- talloc_free(ctx);
-
-after_talloc:
- if (!run_tal)
- goto after_tal;
-
- ctx = tal(NULL, char);
- tv = time_now();
- count = 0;
- do {
- for (i=0;i<LOOPS;i++) {
- p1 = tal_arr(ctx, char, LOOPS % 128);
- for (j = 0; j < 100; j++) {
- p2[j] = tal_strdup(p1, "foo bar");
- p3[j] = tal_arr(p1, char, 300);
- }
- tal_free(p1);
- }
- count += (1 + 200) * LOOPS;
- } while (time_between(time_now(), tv).ts.tv_sec < 5);
- fprintf(stderr, "tal: %.0f ops/sec\n", count/5.0);
-
- tal_free(ctx);
-
-after_tal:
- if (!run_malloc)
- goto after_malloc;
-
- tv = time_now();
- count = 0;
- do {
- for (i=0;i<LOOPS;i++) {
- p1 = malloc(LOOPS % 128);
- for (j = 0; j < 100; j++) {
- p2[j] = strdup("foo bar");
- p3[j] = malloc(300);
- }
- for (j = 0; j < 100; j++) {
- free(p2[j]);
- free(p3[j]);
- }
- free(p1);
- }
- count += (1 + 200) * LOOPS;
- } while (time_between(time_now(), tv).ts.tv_sec < 5);
- fprintf(stderr, "malloc: %.0f ops/sec\n", count/5.0);
-
-after_malloc:
- printf("success: speed\n");
-
- return 0;
-}