From 55d57c65cf67c172d0437a82a4d14b7ac083121f Mon Sep 17 00:00:00 2001 From: Jimmytaker Date: Tue, 6 Oct 2015 20:43:10 +0200 Subject: [PATCH] Use bigger buffer when reading big blobs to increase performance --- src/libmdb/data.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libmdb/data.c b/src/libmdb/data.c index 92e86c5..bb7f91f 100644 --- a/src/libmdb/data.c +++ b/src/libmdb/data.c @@ -580,18 +580,18 @@ void* mdb_ole_read_full(MdbHandle *mdb, MdbColumn *col, size_t *size) { char ole_ptr[MDB_MEMO_OVERHEAD]; - char *result = malloc(MDB_BIND_SIZE); - size_t result_buffer_size = MDB_BIND_SIZE; + char *result = malloc(MDB_BIND_SIZE * 64); + size_t result_buffer_size = MDB_BIND_SIZE * 64; size_t len, pos; memcpy(ole_ptr, col->bind_ptr, MDB_MEMO_OVERHEAD); - len = mdb_ole_read(mdb, col, ole_ptr, MDB_BIND_SIZE); + len = mdb_ole_read(mdb, col, ole_ptr, MDB_BIND_SIZE * 64); memcpy(result, col->bind_ptr, len); pos = len; while ((len = mdb_ole_read_next(mdb, col, ole_ptr))) { if (pos+len >= result_buffer_size) { - result_buffer_size += MDB_BIND_SIZE; + result_buffer_size += MDB_BIND_SIZE * 64; result = realloc(result, result_buffer_size); } memcpy(result + pos, col->bind_ptr, len);