Skip to content

A Rust implementation of the One Billion Row Challenge

Notifications You must be signed in to change notification settings

GeistInDerSH/1brc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

One Billion Row Challenge

Link to original challenge: Link

Results

Hardware:

  • CPU: AMD Ryzen 7 5800X 8-Core Processor
  • RAM: 31Gi
  • Disk: Samsung SSD 850 465Gi

Default

# Cold Cache
\time -f 'Elapsed: %E' ./target/release/rs-1brc > /dev/null
Elapsed: 0:26.18

# Warm Cache
\time -f 'Elapsed: %E' ./target/release/rs-1brc > /dev/null
Elapsed: 0:01.56

# Use Profiling Guided Optimization
# i.e. run ./profile.sh first
\time -f 'Elapsed: %E' ./target/x86_64-unknown-linux-gnu/release/rs-1brc > /dev/null
Elapsed: 0:01.68

10K Key Set

# Cold Cache
\time -f 'Elapsed: %E' ./target/release/rs-1brc > /dev/null
Elapsed: 0:22.65

# Warm Cache
\time -f 'Elapsed: %E' ./target/release/rs-1brc > /dev/null
Elapsed: 0:02.22

# Use Profiling Guided Optimization
# i.e. run ./profile.sh first
\time -f 'Elapsed: %E' ./target/x86_64-unknown-linux-gnu/release/rs-1brc > /dev/null
Elapsed: 0:02.45

Note

The x64-no-dependencies branch contains a version of the code that can be compiled solely with rustc. This code however makes x86_64 Linux syscalls using assembly, and should only work on those machines.

About

A Rust implementation of the One Billion Row Challenge

Resources

Stars

Watchers

Forks