[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#999571: ITP: golang-github-dennwc-varint -- fast varint library for Go



Package: wnpp
Severity: wishlist
Owner: Guillem Jover <gjover@sipwise.com>

* Package name    : golang-github-dennwc-varint
  Version         : 1.0.0-1
  Upstream Author : Denys Smirnov
* URL             : https://github.com/dennwc/varint
* License         : Expat
  Programming Lang: Go
  Description     : fast varint library for Go

 This package provides an optimized implementation of protobuf's varint
 encoding/decoding.
 .
 Benchmarks comparing to a binary.Uvarint:
 .
 benchmark                      old ns/op     new ns/op     delta
 BenchmarkUvarint/1-8           4.13          2.85          -30.99%
 BenchmarkUvarint/1_large-8     4.01          2.28          -43.14%
 BenchmarkUvarint/2-8           6.23          2.87          -53.93%
 BenchmarkUvarint/2_large-8     5.60          2.86          -48.93%
 BenchmarkUvarint/3-8           6.55          3.44          -47.48%
 BenchmarkUvarint/3_large-8     6.54          2.86          -56.27%
 BenchmarkUvarint/4-8           7.30          3.71          -49.18%
 BenchmarkUvarint/4_large-8     7.46          3.10          -58.45%
 BenchmarkUvarint/5-8           8.31          4.12          -50.42%
 BenchmarkUvarint/5_large-8     8.56          3.48          -59.35%
 BenchmarkUvarint/6-8           9.42          4.66          -50.53%
 BenchmarkUvarint/6_large-8     9.91          4.07          -58.93%
 BenchmarkUvarint/7-8           10.6          5.28          -50.19%
 BenchmarkUvarint/7_large-8     11.0          4.70          -57.27%
 BenchmarkUvarint/8-8           11.7          6.02          -48.55%
 BenchmarkUvarint/8_large-8     12.1          5.19          -57.11%
 BenchmarkUvarint/9-8           12.9          6.83          -47.05%
 BenchmarkUvarint/9_large-8     13.1          5.71          -56.41%
 .
 It also provides additional functionality like UvarintSize (similar to
 sov* in gogo/protobuf):
 .
 benchmark                    old ns/op     new ns/op     delta
 BenchmarkUvarintSize/1-8     1.71          0.43          -74.85%
 BenchmarkUvarintSize/2-8     2.56          0.57          -77.73%
 BenchmarkUvarintSize/3-8     3.22          0.72          -77.64%
 BenchmarkUvarintSize/4-8     3.74          0.72          -80.75%
 BenchmarkUvarintSize/5-8     4.29          0.57          -86.71%
 BenchmarkUvarintSize/6-8     4.85          0.58          -88.04%
 BenchmarkUvarintSize/7-8     5.43          0.71          -86.92%
 BenchmarkUvarintSize/8-8     6.01          0.86          -85.69%
 BenchmarkUvarintSize/9-8     6.64          1.00          -84.94%


This package is required by newer prometheus versions. It will be packaged as
part of the Go team.

Thanks,
Guillem


Reply to: