flatbuffers/tests/rust_usage_test
Casper 35e2cac6eb
Store vtables sorted in Rust builder (#6765)
* benchmark many vtables

* Rust: Store written_table rev-positions sorted.

The previous implementation was slow if there were too many tables.

Asymototically when inserting the n^th vtable: The old implementation
took O(n) lookup steps and O(1) insertion. The new implementation is
O(log n) lookup and O(n) insertion. This might be improved further by
using a balanced btree.

Benchmarking, create_many_tables is 7.5x faster (on my laptop):

// Simple vector cache
test create_many_tables ... bench: 728,875 ns/iter (+/- 12,279) = 44 MB/s

// Sorted vector cache
test create_many_tables ... bench: 97,843 ns/iter (+/- 4,430) = 334 MB/s

* Fix lints

Co-authored-by: Casper Neo <cneo@google.com>
2021-08-03 12:31:45 -07:00
..
benches Store vtables sorted in Rust builder (#6765) 2021-08-03 12:31:45 -07:00
bin Rework how Rust generated files are laid out (#6731) 2021-07-22 19:02:28 -04:00
outdir Rework how Rust generated files are laid out (#6731) 2021-07-22 19:02:28 -04:00
tests Store vtables sorted in Rust builder (#6765) 2021-08-03 12:31:45 -07:00
Cargo.toml [Rust] Add support for fixed size arrays (#6548) 2021-04-16 11:15:59 -04:00