diff --git a/Cargo.toml b/Cargo.toml index 5d19efca3..146be05b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,21 +29,25 @@ rev = "c2eb140" [dependencies.group-by] git = "https://github.com/Kerollmops/group-by.git" -rev = "cab857b" +rev = "f1f5d8f" [features] default = ["simd"] i128 = ["bincode/i128", "byteorder/i128"] -simd = ["rocksdb/sse"] portable = ["rocksdb/portable"] -nightly = [] +simd = ["rocksdb/sse"] +nightly = ["hashbrown/nightly", "group-by/nightly"] [dev-dependencies] csv = "1.0" elapsed = "0.1" +jemallocator = "0.1" quickcheck = "0.7" rand = "0.6" rand_xorshift = "0.1" structopt = "0.2" tempfile = "3.0" termcolor = "1.0" + +[profile.release] +debug = true diff --git a/README.md b/README.md index e717b02aa..199affe70 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,11 @@ We made some tests on remote machines and found that we can handle with a datase Network is mesured, servers are located in amsterdam and tests are made between two different datacenters. +### Notes + +The default Rust allocator has recently been [changed to use the system allocator](https://github.com/rust-lang/rust/pull/51241/). +We have seen much better performances when [using jemalloc as the global allocator](https://github.com/alexcrichton/jemallocator#documentation). + ## Usage and examples diff --git a/examples/create-database.rs b/examples/create-database.rs index 4f17d54a9..319e04acb 100644 --- a/examples/create-database.rs +++ b/examples/create-database.rs @@ -1,3 +1,6 @@ +#[global_allocator] +static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc; + use std::path::{Path, PathBuf}; use std::error::Error; use std::borrow::Cow; diff --git a/examples/query-database.rs b/examples/query-database.rs index 4571d242e..ce64870a9 100644 --- a/examples/query-database.rs +++ b/examples/query-database.rs @@ -1,3 +1,6 @@ +#[global_allocator] +static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc; + use std::collections::btree_map::{BTreeMap, Entry}; use std::iter::FromIterator; use std::io::{self, Write};