Skip to content

muesli/natural

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

natural

Yet another natural sort, with 100% test coverage and a benchmark. It does no memory allocation, does not depends on package sort so it doesn't depends on reflect.

GoDoc

Benchmarks

On Go 1.10.1.

On a Xeon:

$ go test -bench=. -benchmem -cpu 1
goos: linux
goarch: amd64
pkg: github.com/maruel/natural
BenchmarkNative                200000000       8.63 ns/op     0 B/op     0 allocs/op
BenchmarkLessStringOnly        100000000       18.7 ns/op     0 B/op     0 allocs/op
BenchmarkLessDigits             50000000       30.5 ns/op     0 B/op     0 allocs/op
BenchmarkLessStringDigits       50000000       31.3 ns/op     0 B/op     0 allocs/op
BenchmarkLessDigitsTwoGroups    20000000       64.4 ns/op     0 B/op     0 allocs/op

On a Raspberry Pi 3:

$ go test -bench=. -benchmem -cpu 1
goos: linux
goarch: arm
pkg: github.com/maruel/natural
BenchmarkNative                 10000000        148 ns/op     0 B/op      0 allocs/op
BenchmarkLessStringOnly          5000000        312 ns/op     0 B/op      0 allocs/op
BenchmarkLessDigits              2000000        656 ns/op     0 B/op      0 allocs/op
BenchmarkLessStringDigits        2000000        679 ns/op     0 B/op      0 allocs/op
BenchmarkLessDigitsTwoGroups     1000000       1480 ns/op     0 B/op      0 allocs/op

Coverage:

$ go test -cover
PASS
coverage: 100.0% of statements
ok     github.com/maruel/natural       0.012s

About

Natural sorting (natsort) in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%