com.github.splunk.lightproto:lightproto-benchmark

Protobuf compatible code generator

License

License

GroupId

GroupId

com.github.splunk.lightproto
ArtifactId

ArtifactId

lightproto-benchmark
Last Version

Last Version

0.4
Release Date

Release Date

Type

Type

jar
Description

Description

Protobuf compatible code generator
Project Organization

Project Organization

Splunk

Download lightproto-benchmark

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.splunk.lightproto/lightproto-benchmark/ -->
<dependency>
    <groupId>com.github.splunk.lightproto</groupId>
    <artifactId>lightproto-benchmark</artifactId>
    <version>0.4</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.splunk.lightproto/lightproto-benchmark/
implementation 'com.github.splunk.lightproto:lightproto-benchmark:0.4'
// https://jarcasting.com/artifacts/com.github.splunk.lightproto/lightproto-benchmark/
implementation ("com.github.splunk.lightproto:lightproto-benchmark:0.4")
'com.github.splunk.lightproto:lightproto-benchmark:jar:0.4'
<dependency org="com.github.splunk.lightproto" name="lightproto-benchmark" rev="0.4">
  <artifact name="lightproto-benchmark" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.splunk.lightproto', module='lightproto-benchmark', version='0.4')
)
libraryDependencies += "com.github.splunk.lightproto" % "lightproto-benchmark" % "0.4"
[com.github.splunk.lightproto/lightproto-benchmark "0.4"]

Dependencies

compile (3)

Group / Artifact Type Version
com.github.splunk.lightproto : lightproto-tests jar 0.4
io.netty : netty-buffer jar
org.openjdk.jmh : jmh-core jar 1.27

provided (1)

Group / Artifact Type Version
org.openjdk.jmh : jmh-generator-annprocess jar 1.27

Project Modules

There are no modules declared in this project.

Light Proto serialization

Features

  1. Generate the fastest possible Java code for Protobuf SerDe
  2. 100% Compatible with proto2 definition and wire protocol
  3. Zero-copy deserialization using Netty ByteBuf
  4. Deserialize from direct memory
  5. Zero heap allocations in serialization / deserialization
  6. Lazy deserialization of strings and bytes
  7. Reusable mutable objects
  8. No runtime dependency library
  9. Java based code generator with Maven plugin

Benchmark

java -jar benchmark/target/benchmarks.jar

Benchmark                                         Mode  Cnt   Score    Error   Units
ProtoBenchmark.lightProtoDeserialize             thrpt    3   8.445 ±  1.734  ops/us
ProtoBenchmark.lightProtoSerialize               thrpt    3   4.056 ±  1.628  ops/us
ProtoBenchmark.protobufDeserialize               thrpt    3   2.465 ±  0.682  ops/us
ProtoBenchmark.protobufSerialize                 thrpt    3   2.242 ±  0.186  ops/us
SimpleBenchmark.lightProtoDeserialize            thrpt    3  37.414 ±  4.980  ops/us
SimpleBenchmark.lightProtoDeserializeReadString  thrpt    3  17.367 ±  1.790  ops/us
SimpleBenchmark.lightProtoSerialize              thrpt    3  35.473 ±  6.325  ops/us
SimpleBenchmark.protobufDeserialize              thrpt    3   8.255 ±  1.104  ops/us
SimpleBenchmark.protobufSerialize                thrpt    3  18.960 ±  4.626  ops/us
StringEncodingBenchmark.jdkEncoding              thrpt   10  14.031 ±  0.394  ops/us
StringEncodingBenchmark.jdkEncodingAscii         thrpt   10  19.279 ±  0.448  ops/us
StringEncodingBenchmark.nettyEncoding            thrpt   10  27.273 ±  0.988  ops/us
StringEncodingBenchmark.nettyEncodingAscii       thrpt   10  36.140 ±  0.693  ops/us
com.github.splunk.lightproto

Splunk GitHub

Versions

Version
0.4
0.3
0.2