|
| 1 | +This is a suite of serialization benchmarks. In comprises of the following projects: |
| 2 | + |
| 3 | +* C++ |
| 4 | + * [rapidjson](https://github.com/erickt/rapidjson) |
| 5 | +* Go |
| 6 | + * [encoding/json](http://golang.org/pkg/encoding/json) |
| 7 | + * [ffjson](https://github.com/pquerna/ffjson) |
| 8 | + * [go-capnproto](https://github.com/glycerine/go-capnproto) |
| 9 | + * [gogoprotobuf](http://code.google.com/p/gogoprotobuf/) |
| 10 | + * [goprotobuf](http://code.google.com/p/goprotobuf/) |
| 11 | +* Rust |
| 12 | + * [bincode](https://github.com/TyOverby/bincode) |
| 13 | + * [capnproto-rust](https://github.com/dwrensha/capnproto-rust) |
| 14 | + * [rust-msgpack](https://github.com/mneumann/rust-msgpack) |
| 15 | + * [rust-protobuf](https://github.com/stepancheg/rust-protobuf) |
| 16 | + * [rust-serde](https://github.com/erickt/rust-serde) |
| 17 | + * [serialize](http://doc.rust-lang.org/serialize/) |
| 18 | + |
| 19 | +The initial benchmark suite is derived from |
| 20 | +[Goser](https://github.com/cloudflare/goser) benchmark, which is all about |
| 21 | +serializing and serializing from this JSON record: |
| 22 | + |
| 23 | +```json |
| 24 | +{ |
| 25 | + "timestamp": 25469139677502, |
| 26 | + "zone_id": 123456, |
| 27 | + "zone_plan": 1, |
| 28 | + "http": { |
| 29 | + "protocol": 2, |
| 30 | + "status": 200, |
| 31 | + "host_status": 503, |
| 32 | + "up_status": 520, |
| 33 | + "method": 1, |
| 34 | + "content_type": "text/html", |
| 35 | + "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/33.0.1750.146 Safari/537.36", |
| 36 | + "referer": "https: //www.cloudflare.com/", |
| 37 | + "request_uri": "/cdn-cgi/trace" |
| 38 | + }, |
| 39 | + "origin": { |
| 40 | + "ip": "1.2.3.4", |
| 41 | + "port": 8000, |
| 42 | + "hostname": "www.example.com", |
| 43 | + "protocol": 2 |
| 44 | + }, |
| 45 | + "country": 238, |
| 46 | + "cache_status": 3, |
| 47 | + "server_ip": "192.168.1.1", |
| 48 | + "server_name": "metal.cloudflare.com", |
| 49 | + "remote_ip": "10.1.2.3", |
| 50 | + "bytes_dlv": 123456, |
| 51 | + "ray_id": "10c73629cce30078-LAX" |
| 52 | +} |
| 53 | +``` |
| 54 | + |
| 55 | +To run the tests, do: |
| 56 | + |
| 57 | +``` |
| 58 | +% git submodule init |
| 59 | +% git submodule sync |
| 60 | +% make |
| 61 | +``` |
0 commit comments