Skip to content

Instantly share code, notes, and snippets.

Avatar
😎
warp! Help, I'm trapped in a time

Martin Ankerl martinus

😎
warp! Help, I'm trapped in a time
View GitHub Profile
View upto.cpp
class UpToExecutor {
public:
UpToExecutor(int64_t begin, int64_t end, int64_t step)
: mBegin(begin)
, mEnd(end)
, mStep(step) {}
template <typename Op>
void operator()(Op op) {
View EnumFlags.h
#pragma once
#include <bitset>
#include <type_traits>
namespace util {
// Provides a type-safe bitset for enums
template <typename E>
class EnumFlags {
View nanobench console output.md

Warning, results might be unstable:

  • NDEBUG not defined, assert() macros are evaluated
  • CPU governor is '' but should be 'performance'

Recommendations

ns/op op/s err% ins/op cyc/op IPC total benchmark
@martinus
martinus / .tmux.conf
Created Sep 25, 2019
Linux Configurations
View .tmux.conf
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
set-option -g history-limit 10000
# Enable mouse mode (tmux 2.1 and above)
setw -g mouse on
# remap prefix from 'C-b' to 'C-Space'
unbind C-b
@martinus
martinus / perf.md
Last active Sep 17, 2019
perf config
View perf.md

/etc/sysctl.conf

kernel.perf_event_paranoid = -1
kernel.perf_cpu_time_max_percent = 5
kernel.perf_cpu_time_max_percent=10000
View Bitcoin Dev Tricks.md

Build with g++4-8, the oldest supported

CC=gcc-4.8 CXX=g++-4.8 CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 ./configure --disable-wallet
@martinus
martinus / benchmark2.cpp
Created Jul 27, 2019
simple benchmark of robin_hood map, updated
View benchmark2.cpp
#include <iostream>
#include <string>
#include <chrono>
#include <unordered_map>
#include "tsl/robin_map.h"
#include "robin_hood.h"
using my_clock = std::chrono::high_resolution_clock;
@martinus
martinus / benchmark.cpp
Created Jul 25, 2019
simple benchmark of tsl, robin_hood, and std::unordered_map
View benchmark.cpp
#include <iostream>
#include <string>
#include <chrono>
#include <unordered_map>
#include "tsl/robin_map.h"
#include "robin_hood.h"
using namespace std;
using my_clock = std::chrono::high_resolution_clock;
@martinus
martinus / random_bool_benchmark.cpp
Last active Oct 15, 2019
fast random bool in C++
View random_bool_benchmark.cpp
#include <algorithm>
#include <chrono>
#include <iostream>
#include <random>
#define LIKELY(x) __builtin_expect((x), 1)
#define UNLIKELY(x) __builtin_expect((x), 0)
#define NO_INLINE __attribute__((noinline))
// extremely fast random number generator that also produces very high quality random.
@martinus
martinus / .bashrc
Created May 4, 2018
awesome bash prompt
View .bashrc
function prompt_timer_start {
PROMPT_TIMER=${PROMPT_TIMER:-`date +%s.%3N`}
echo -ne "\033]0;${@}\007"
}
function prompt_svn_stats() {
command -v svn >/dev/null
if [ $? != 0 ]; then
return
fi
You can’t perform that action at this time.