Skip to content

Latest commit

 

History

History

bench

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Benchmark

    cd bench
    node wordpos-bench.js

Version 1.0 Benchmark

The following benchmarks were run on a Win8.1/Core i7/3.5GHz machine on a Seagate 500GB SATA II, 7200 RPM disk. The corpus was a 512-word text, with stopwords and duplicates removed, resulting in 220 words looked-up.

Pre v0.14 (comparable to Natural)

  getPOS : 1 ops/s { iterations: 1, elapsed: 1514 }
  getNouns : 2 ops/s { iterations: 1, elapsed: 409 }
  getVerbs : 2 ops/s { iterations: 1, elapsed: 418 }
  getAdjectives : 3 ops/s { iterations: 1, elapsed: 332 }
  getAdverbs : 4 ops/s { iterations: 1, elapsed: 272 }
  lookup : 1 ops/s { iterations: 1, elapsed: 1981 }
  lookupNoun : 0 ops/s { iterations: 1, elapsed: 2016 }

looked up 220 words
done in 7770 msecs

v0.1.16 (with fastIndex):

  getPOS : 11 ops/s { iterations: 1, elapsed: 90 }
  getNouns : 21 ops/s { iterations: 1, elapsed: 47 }
  getVerbs : 53 ops/s { iterations: 1, elapsed: 19 }
  getAdjectives : 29 ops/s { iterations: 1, elapsed: 34 }
  getAdverbs : 83 ops/s { iterations: 1, elapsed: 12 }
  lookup : 1 ops/s { iterations: 1, elapsed: 720 }
  lookupNoun : 1 ops/s { iterations: 1, elapsed: 676 }

looked up 220 words
done in 2459 msecs

v1.0:

  getPOS : 14 ops/s { iterations: 1, elapsed: 73 }
  getNouns : 26 ops/s { iterations: 1, elapsed: 38 }
  getVerbs : 42 ops/s { iterations: 1, elapsed: 24 }
  getAdjectives : 24 ops/s { iterations: 1, elapsed: 42 }
  getAdverbs : 26 ops/s { iterations: 1, elapsed: 38 }
  lookup : 6 ops/s { iterations: 1, elapsed: 159 }
  lookupNoun : 13 ops/s { iterations: 1, elapsed: 77 }

looked up 221 words
done in 1274 msecs

These are 3.5x better compared to v0.1.16 and 15x better compared to pre v0.14, overall. Functions that read the data files see much improved performance: lookup about 13x and lookupNoun 26x compared to pre v0.14.

Old benchmark

512-word corpus (< v0.1.4, comparable to Natural) :

  getPOS : 0 ops/s { iterations: 1, elapsed: 9039 }
  getNouns : 0 ops/s { iterations: 1, elapsed: 2347 }
  getVerbs : 0 ops/s { iterations: 1, elapsed: 2434 }
  getAdjectives : 1 ops/s { iterations: 1, elapsed: 1698 }
  getAdverbs : 0 ops/s { iterations: 1, elapsed: 2698 }
done in 20359 msecs

512-word corpus (as of v0.1.4, with fastIndex) :

  getPOS : 18 ops/s { iterations: 1, elapsed: 57 }
  getNouns : 48 ops/s { iterations: 1, elapsed: 21 }
  getVerbs : 125 ops/s { iterations: 1, elapsed: 8 }
  getAdjectives : 111 ops/s { iterations: 1, elapsed: 9 }
  getAdverbs : 143 ops/s { iterations: 1, elapsed: 7 }
done in 1375 msecs

220 words are looked-up (less stopwords and duplicates) on a win7/64-bit/dual-core/3GHz. getPOS() is slowest as it searches through all four index files.