Comments (1)
I'm really happy about this plan to improve the benchmarks! 🌟 👏
Document exactly which invariants crates are allowed to rely on. This encompasses data ranges and valid values; anything outside of the documented invariants are off-limits.
Strongly agree, but do be sure to define the phrase "rely on." I see a distinction between crashing/erroring if the invariant is broken and merely pessimizing the performance/size. For reference, bitcode
hints are of the latter category (if you're wrong, you haven't broken anything except your bandwidth costs).
Make the benchmarks more comprehensive. If crates are able to turn a benchmark into a memcpy war, then their punishment will be more difficult schemas. This should be the preferred route for foiling metagaming.
Yes please, but do note there is also a compression war going on 😉 ⚔️
Compression algorithms will happily rely on any invariant they can detect, so please either remove those invariants or make them more realistic:
- Generate random strings from a much larger pool (aim for very low duplicate rates) or use enums instead
- Make the bit-width and random distribution of integers and floats match as closely as possible
Finally, don't forget to time the compression!
Allow some minor optimizations. Anything that only requires a little work is OK. My unhelpful metric would be "as much help as you can get from five minutes in a text chat".
That is a helpful metric! ❤️
For complex schemas, I'd say five minutes per type would be more scalable 👌
from rust_serialization_benchmark.
Related Issues (20)
- Enable PGO for benchmarks HOT 3
- Flatbuffers serialization could be faster HOT 1
- Add support for simd-json HOT 1
- Benchmark including I/O HOT 3
- Add support for bebop HOT 2
- Compress using `zstd` instead of `zlib` HOT 1
- Bincode deserialization could be faster HOT 2
- Cannot compile on linux HOT 10
- Join rosetta-rs? HOT 1
- Add ciborium HOT 1
- use simd-json-derive for simd-json benchmarks
- Add SBE (Simple Binary Encoding)
- Help with adding ε-serde HOT 20
- Add databuf.rs
- Can't add new framework on MacOS HOT 4
- Apache Avro is not well supported
- Potential for other metrics? HOT 1
- Add a benchmark for lots of tiny objects to measure latency HOT 3
- Zero-copy serialization frameworks (capnproto, flatbuffers) are misrepresented HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust_serialization_benchmark.