Comments (6)
You should start the timer after creating the Trie
from mnemonist.
Hello @tomas-campodonico. Thanks for noticing this performance issue. I spotted an error in the Trie.get
method and was able to get better performance (beating the ES5 array). Some things:
- @maxiruani is right, you should put your timer after creating the Trie.
- Try pulling the code & use the latest commit or wait for the npm release.
- Try increasing your number to
100000
(one more zero) and you'll see a better benefit of using theTrie
.
So, on the matter of benchmarking, you are right, I should start to make some in the repo to spot those kind of things etc. Usually I use matcha to do so. What do you think?
from mnemonist.
v0.10.2 has been released with the related commit.
from mnemonist.
Same benchmark with 10000000 will failed on the Trie.from(words)
line . v0.10.2, Node 7.4.0 .
from mnemonist.
Yes, but this is a memory issue. With 10M items node will run out of memory because the Trie needs to store pointers whereas a flat array is contiguous in memory.
from mnemonist.
This said, we can work together, if you want, to create a StaticTrie
that could be stored in a flat array so it is more memory-efficient.
from mnemonist.
Related Issues (20)
- Allowing modern Javascript syntax (or specifying the earliest target Ecmascript version) HOT 5
- KDTree constructor not working as documented HOT 4
- Missing OrderedMap or SortedMap data structure HOT 1
- Negative sampling tree HOT 1
- longestCommonSubsequence return wrong result HOT 1
- Multiset.size=NaN when removing non-existent element HOT 2
- Distinguishing MultiSet & Counter semantics
- Adding JSDoc to ts.d files HOT 3
- Have MultiSet.clear() return this HOT 4
- What is the simple way of copying all elements from one Multiset into another? HOT 2
- Typescript definition of `keys` does not work with subsets of string. HOT 1
- MultiSet.toJSON output is surprising HOT 5
- MinHeap.push() vs MaxHeap.push() performance HOT 3
- JS array with getter by ID ? HOT 2
- Possible bug Generalized Suffix Array - longestCommonSubsequence HOT 1
- SymSpell.from(words, {maxDistance: 3, verbosity: 2}) taking long time to load large word dictionary HOT 3
- Proposal to Integrate SIEVE Eviction Algorithm HOT 9
- Consolidate named exports tests
- CircularBuffer peekLast undefined HOT 1
- Double check sparse queue set bound testing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mnemonist.