Giter Site home page Giter Site logo

gofaster's Introduction

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

gofaster's People

Contributors

issuj avatar

Stargazers

Taeho Kim avatar Roman Khavronenko avatar Arto Vuori avatar eli avatar Leo Gallucci avatar  avatar David Dai avatar Walter Schulze avatar Mark Wolfe avatar Dmitry Savintsev avatar Dario Castañé avatar Stefan Haacker avatar Damian Gryski avatar  avatar Kevin Darlington avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.