From 1554a59153dceeeedca80c7096fc4947b46a33f4 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Thu, 18 Sep 2014 16:23:36 -0700 Subject: [PATCH] Add a progress indicator. Remember to run the optimizer. --- Makefile | 8 +++++--- geojson.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 6a69ae9..17e5705 100644 --- a/Makefile +++ b/Makefile @@ -6,11 +6,13 @@ install: jsonpull.h libjsonpull.a cp jsonpull.h $(PREFIX)/include/jsonpull.h cp libjsonpull.a $(PREFIX)/lib/libjsonpull.a +PG= + jsoncat: jsoncat.o jsonpull.o - cc -g -Wall -o $@ $^ + cc $(PG) -g -Wall -o $@ $^ geojson: geojson.o jsonpull.o - cc -g -Wall -o $@ $^ -lm + cc $(PG) -O3 -g -Wall -o $@ $^ -lm jsoncat.o jsonpull.o: jsonpull.h @@ -19,4 +21,4 @@ libjsonpull.a: jsonpull.o ranlib $@ %.o: %.c - cc -g -Wall -c $< + cc $(PG) -O3 -g -Wall -c $< diff --git a/geojson.c b/geojson.c index 5be02dc..ccfa43b 100644 --- a/geojson.c +++ b/geojson.c @@ -395,8 +395,6 @@ void check(struct index *ix, long long n, char *metabase, unsigned *file_bbox) { } void read_json(FILE *f) { - json_pull *jp = json_begin_file(f); - char metaname[] = "/tmp/meta.XXXXXXXX"; char indexname[] = "/tmp/index.XXXXXXXX"; @@ -412,6 +410,9 @@ void read_json(FILE *f) { unsigned file_bbox[] = { UINT_MAX, UINT_MAX, 0, 0 }; + json_pull *jp = json_begin_file(f); + long long seq = 0; + while (1) { json_object *j = json_read(jp); if (j == NULL) { @@ -526,6 +527,11 @@ void read_json(FILE *f) { ix.index = encode_bbox(bbox[0], bbox[1], bbox[2], bbox[3], 0); ix.fpos = start; fwrite_check(&ix, sizeof(struct index), 1, indexfile); + + if (seq % 100000 == 0) { + fprintf(stderr, "Read %.1f million features\r", seq / 1000000.0); + } + seq++; } next_feature: