After seeing many talks on Data Oriented Programming but few examples on how to actually get started with it I decided to make this repo. The goal is to provide easy to digest examples in OOP as well as DOP.
cd go
go test ./...
go test ./... -bench=. -benchmem
cd rust
cargo test
cargo bench
Function Name | OOP Time (µs or ns) | DOP Time (µs or ns) | Speed Difference |
---|---|---|---|
find_by_id | 4.2601 µs | 35.571 ns | DOP is 8.35x faster |
find_by_title | 91.119 ns | 77.583 ns | DOP is 1.17x faster |
find_by_author_name | 38.961 µs | 40.111 µs | OOP is 1.03x faster |
update | 62.089 ns | 77.203 ns | OOP is 1.24x faster |
publish | 40.402 ns | 22.747 ns | DOP is 1.78x faster |
delete | 726.47 µs | 20.470 ns | DOP is 35.49x faster |
add | 163.68 ns | 465.10 ns | OOP is 2.84x faster |
Function Name | OOP Time (µs or ns) | DOP Time (µs or ns) | Speed Difference |
---|---|---|---|
FindPostById | 34.672 µs | 8.427 µs | DOP is 4.11x faster |
FindPostByTitle | 17.51 ns | 5.517 ns | DOP is 3.17x faster |
FindPostByAuthorName | 61.521 µs | 282.1 ns | DOP is 4.59x faster |
PublishPost | 420.491 µs | 7.466 ns | DOP is 56.32x faster |
UpdatePost | 7726.18 µs | 42.84 ns | DOP is 180.35x faster |
AddPost | 848.7 ns | 639.6 ns | DOP is 1.33x faster |
DeletePost | 27815.649 µs | 4830.309 µs | DOP is 5.76x faster |
Go ExamplesRust Examples- Zig Examples
- C++ Examples
- Others (Kotlin, Typescript, Java, C#)?
- Real-World Examples in each language (Web Server, CLI, etc possibly)