Use a hash table to index existing vtables (#5314)
authorMalthe Borch <mborch@gmail.com>
Mon, 6 May 2019 22:00:02 +0000 (22:00 +0000)
committerWouter van Oortmerssen <aardappel@gmail.com>
Mon, 6 May 2019 22:00:02 +0000 (15:00 -0700)
commite47ca7ab40c9e8d31ae2eb7b6fba9872c9dc0714
treeec70b55dacbbdd2b102fc132785a4bfb67a619eb
parentd79f4e9717e64be3c8b4e2aea35f2d77de0f4374
Use a hash table to index existing vtables (#5314)

* Use a hash table to index existing vtables

This allows for quick deduplication even in situations where there
might be thousands of vtables due to 'combinatoric explosion'.

This fixes issue #5301.

* Refactor 0-offset trimming

* Improve deduplication benchmark

The routine now generates a set of realistic logical layouts and
uses a timer function that randomly picks a layout for each iteration.

The benchmark runs in batches of # of logical layouts = 1, 10, 100, 1000.

(Note that due to alignment, the actual number of vtables is usually slightly
higher.)
python/flatbuffers/builder.py
tests/py_test.py