Skip to content

Instantly share code, notes, and snippets.

View pavel-odintsov's full-sized avatar
🛡️
On mission to deliver affordable DDoS protection

Pavel Odintsov pavel-odintsov

🛡️
On mission to deliver affordable DDoS protection
View GitHub Profile
@pavel-odintsov
pavel-odintsov / patricia_performance_tests.cpp
Last active February 20, 2022 21:04
Patricia performance test for Medium
#include <arpa/inet.h>
#include <fstream>
#include <iostream>
#include <math.h>
#include <netinet/in.h>
#include <stdint.h>
#include <stdio.h>
#include <string>
#include <sys/socket.h>
#include <sys/time.h>
@pavel-odintsov
pavel-odintsov / traffic_structures_performance_tests.cpp
Created February 21, 2022 23:25
Example code to reproduce libsparsehash segmentation faults
#include <functional>
#include <iomanip>
#include <iostream>
#include <locale.h>
#include <map>
#include <stdint.h>
#include <sys/time.h>
#include <unistd.h>
#include "../fastnetmon_types.h"
@pavel-odintsov
pavel-odintsov / af_packet_classic.c
Last active March 4, 2022 16:14
af_packet_classic_habrahabr
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <unistd.h>
#include <boost/thread.hpp>
#include <arpa/inet.h>
#include <sys/socket.h>
@pavel-odintsov
pavel-odintsov / signal_prefix.pl
Created April 13, 2022 15:47
FastNetMon Advanced callback script to announce specific signal prefix when we detect an attack
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
use Data::Dumper;
my $community = '65000:777';
@pavel-odintsov
pavel-odintsov / vimrc
Last active May 8, 2022 13:23
vimrc_odintsov
"
" First of all, pleae install latest vim for convinience: https://launchpad.net/~jonathonf/+archive/ubuntu/vim
" Then install vim go
" git clone https://github.com/fatih/vim-go.git ~/.vim/pack/plugins/start/vim-go
"
" Fix arrow keys that display A B C D on remote shell:
" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
Element size: 248 bytes
Total structure size: 2365 Mbytes
std::map: 5.5 mega ops per second
std::map big endian keys full scan: 17.2 mega ops per second
std::map big endian keys: 1.3 mega ops per second
std::map big endian keys full scan: 6.3 mega ops per second
CPU: AMD Ryzen 5 3600 6-Core Processor
Boost 1.78
Element size: 248 bytes
Total structure size: 2365 Mbytes
std::map: 5.1 mega ops per second
std::map big endian keys full scan: 17.3 mega ops per second
@pavel-odintsov
pavel-odintsov / gist:6e996075809e6a0362459e5ba583519b
Created June 29, 2022 13:48
Boost 1.79 traffic structures on Ryzen 7 5800X
Element size: 248 bytes
Total structure size: 2365 Mbytes
std::map: 6.4 mega ops per second
std::map big endian keys full scan: 32.2 mega ops per second
std::map big endian keys: 2.4 mega ops per second
std::map big endian keys full scan: 10.6 mega ops per second
CPU: AMD Ryzen 5 3600 6-Core Processor
Boost 1.78
Element size: 248 bytes
Total structure size: 2365 Mbytes
std::map: 5.1 mega ops per second
std::map big endian keys full scan: 17.3 mega ops per second
@pavel-odintsov
pavel-odintsov / performance.patch
Created June 29, 2022 18:26
Boost 1.78 vs 1.80 diff
--- 78 2022-06-29 19:25:43.444689862 +0100
+++ 80 2022-06-29 19:25:46.944734452 +0100
@@ -1,49 +1,50 @@
Element size: 248 bytes
Total structure size: 2365 Mbytes
-std::map: 5.1 mega ops per second
-std::map big endian keys full scan: 17.3 mega ops per second
-std::map big endian keys: 1.4 mega ops per second