• Rémy Oudompheng's avatar
    strings: better mean complexity for Count and Index. · 23093f86
    Rémy Oudompheng authored
    The O(n+m) complexity is obtained probabilistically
    by using Rabin-Karp algorithm, which provides the needed complexity
    unless exceptional collisions occur, without memory allocation.
    
    benchmark                 old ns/op    new ns/op    delta
    BenchmarkIndexHard1         6532331      4045886  -38.06%
    BenchmarkIndexHard2         8178173      4038975  -50.61%
    BenchmarkIndexHard3         6973687      4042591  -42.03%
    BenchmarkCountHard1         6270864      4071090  -35.08%
    BenchmarkCountHard2         7838039      4072853  -48.04%
    BenchmarkCountHard3         6697828      4071964  -39.20%
    BenchmarkIndexTorture       2730546        28934  -98.94%
    BenchmarkCountTorture       2729622        29064  -98.94%
    
    Fixes #4600.
    
    R=rsc, donovanhide, remyoudompheng
    CC=golang-dev
    https://golang.org/cl/7314095
    23093f86
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...