Up-to 1000x faster than the performance of industrial standard databases, able to handle 1 billion elements with randomness of 4,294,967,296!
We strongly suggest you to read the Technical Review.
Program Name: BTAS - BitTree Algorithm Set
Purpose: filter out unique integers from an unsorted integer array. E.g. {1,2,1,3} should be filtered to {1,2,3}
License: MIT
You need a C compiler to build the c-branch. For the cpp-branch, you also need CMake > 3.20.
- For Microsoft Windows users, mingw-w64 is recommended
- For GNU/Linux Distro or other *nix users, the GNU Compiler Collections, known as gcc, is a perfect one
- For macOS users, clang is easy to install and use (brew is not needed to install clang on macOS).
NOTE: Please choose a branch before build this project.
- Use git to clone this code:
git clone https://github.com/zhenrong-wang/BTAS.git - Change your directory:
cd BTAS
For the c-branch
- a. Build the benchmark with a
C++compiler because we addedC++method to the benchmark_main.cpp. - b. Command:
g++ *.c *.cpp -Ofast -Wall -o btas.run - The
C source codecan be compiled and built to libraries with astandard C compiler. NoC++compiler would be needed for this purpose.
For the cpp-branch:
- b. Configure CMake:
cmake -B cmake-build-release -DCMAKE_BUILD_TYPE=Release - b. Build command example:
cmake --build cmake-build-release --config Release --target all - b. Change your directory:
cd cmake-build-release - b. Build with make:
make
Command Format: cmd argv[1] argv[2] OPTION
argv[1]: A string to specify an integer as the number of elems input. E.g. 10032argv[2]: A string to specify an integer as the maximum random number generated. E.g. 1000OPTION:--brute(execute the brute algorithms),--fio-bin--fio-csv(With File I/O),--count(execute the counting functions)
Any bugs or problems found, please submit issues to this repo. We'd be glad to communicate on any issues.