Skip to content

issuj/gofaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

gofaster

Amd64 asm optimized alternatives for some Go stdlib packages

I needed these for another project. Since they're general purpose, I decided to publish them as a separate repo.

Contents, so far:

  • Base64 encoder, interface similar to "encoding/base64"
  • Crc32 with Kadatch & Jenkins (aka crcutil) algorithm, interface similar to "hash/crc32" (*)

(*) You can find a much faster Crc32 lib here: https://github.com/klauspost/crc32 (also in Go 1.6 stdlib)

Base64 benchmark result (vs stdlib), 3*16k block size:

BenchmarkStdlib    10000            159637 ns/op         307.90 MB/s
BenchmarkSimd     100000             13612 ns/op        3610.81 MB/s

Crc32 benchmark result (vs stdlib), 16k block size:

BenchmarkStdlib    30000             46786 ns/op         350.85 MB/s
BenchmarkKandJ    300000              5858 ns/op        2801.91 MB/s

Benchmarks were run on an Intel Core i7-5600U (Broadwell, 3.2GHz), Go version 1.4.2

About

Faster alternatives for some Go stdlib packages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published