From 165312053bec1d36b161088258e97cf2eaa1ca54 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Sat, 6 Dec 2014 02:22:51 +0100 Subject: make this 2 orders of magnitude faster by using uninitialized vectors --- tests/calendar.fbs | 2 +- tests/storagebenchmark.cpp | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/calendar.fbs b/tests/calendar.fbs index 203ee43..ef4f112 100644 --- a/tests/calendar.fbs +++ b/tests/calendar.fbs @@ -5,7 +5,7 @@ namespace Calendar; table Event { summary:string; description:string; - attachment:[byte]; + attachment:[ubyte]; } root_type Event; diff --git a/tests/storagebenchmark.cpp b/tests/storagebenchmark.cpp index 9c95d3b..f05cc78 100644 --- a/tests/storagebenchmark.cpp +++ b/tests/storagebenchmark.cpp @@ -16,20 +16,22 @@ using namespace flatbuffers; static std::string createEvent() { - FlatBufferBuilder fbb; + static const size_t attachmentSize = 1024*2; // 2KB + static uint8_t rawData[attachmentSize]; + static FlatBufferBuilder fbb; + fbb.Clear(); { auto summary = fbb.CreateString("summary"); - - const int attachmentSize = 1024*2; // 2KB - int8_t rawData[attachmentSize]; - auto data = fbb.CreateVector(rawData, attachmentSize); - + auto data = fbb.CreateUninitializedVector(attachmentSize); + //auto data = fbb.CreateVector(rawData, attachmentSize); Calendar::EventBuilder eventBuilder(fbb); eventBuilder.add_summary(summary); eventBuilder.add_attachment(data); auto eventLocation = eventBuilder.Finish(); - FinishEventBuffer(fbb, eventLocation); + Calendar::FinishEventBuffer(fbb, eventLocation); + memcpy((void*)Calendar::GetEvent(fbb.GetBufferPointer())->attachment()->Data(), rawData, attachmentSize); } + return std::string(reinterpret_cast(fbb.GetBufferPointer()), fbb.GetSize()); } -- cgit v1.2.3