Lots of improvements. Most notably, removal of memory maps for searching.

Memory maps appear to degrade quite a bit in the presence of multithreading.

Also, switch to lock free data structures for synchronization. Give each
worker an input and output buffer which require no synchronization.
This commit is contained in:
Andrew Gallant
2016-08-28 20:18:34 -04:00
parent 1c8379f55a
commit c809679cf2
5 changed files with 258 additions and 261 deletions

View File

@@ -27,9 +27,11 @@ log = "0.3"
memchr = "0.1"
memmap = "0.2"
num_cpus = "1"
parking_lot = "0.3"
regex = { version = "0.1", path = "/home/andrew/rust/regex" }
regex-syntax = { version = "0.3.1", path = "/home/andrew/rust/regex/regex-syntax" }
rustc-serialize = "0.3"
thread_local = "0.2"
walkdir = "0.1"
[features]
@@ -41,3 +43,4 @@ lazy_static = "0.2"
[profile.release]
debug = true
panic = "abort"