Open datokrat opened 8 years ago
Thanks for the improvement.
I have some basic benchmarking tests in the lubm/browser directory. I will try to run them before merging the PR.
Why do you use setTimeout(..., 0) instead of process.nextTick()? I just noticed that this tremendously slows down the engine. It literally reverses the performance improvement.
The query engine often redundantly fetches same objects from the lexicon in denormalizeBindings(List). Using a lazy cache for the already fetched items reduces the request time significantly; an exemplar query took only 1.5 seconds instead of 10 without the tweak.