Brubeck, a statsd-compatible metrics aggregator
“…Taking an existing application and rewriting it in another language very rarely gives good results. Specially in the case of a Node.js server, you go from having an event loop written in C (libuv,...
View ArticleHow to receive a million packets per second
“Last week during a casual conversation I overheard a colleague saying: “The Linux network stack is slow! You can’t expect it to do more than 50 thousand packets per second per core!” That got me...
View ArticleMakefile Tutorial
http://makefiletutorial.com/ https://github.com/theicfire/makefiletutorial http://www.gnu.org/software/make/manual/make.html#Options-Summary
View ArticleEmbedding LuaJIT in 30 minutes (or so)
“Since you’re reading this, you probably know Lua, the world’s most infuriating language. If not, hop on to Lua in 15 minutes to get the basics right. Now there are two types of use cases where Lua...
View ArticleLupa – Lua in Python
“Lupa integrates the runtimes of Lua or LuaJIT2 into CPython. It is a partial rewrite of LunaticPython inCython with some additional features such as proper coroutine support. For questions not...
View ArticleSystem calls in the Linux kernel
“This post opens new chapter in linux-insides book and as you may understand from the title, this chapter will devoted to the System call concept in the Linux kernel. The choice of the topic for this...
View ArticleCPython internals: A ten-hour codewalk through the Python interpreter source...
“Here are nine lectures walking through the internals of CPython, the canonical Python interpreter implemented in C. They were from a dynamic programming languages course that I taught in Fall 2014 at...
View ArticleUsing Nginx as a Load Balancer
“After you’ve ensured your web application is setup for a distributed environment, you can then decide on a strategy for load balancing. Nginx offers these strategies: Round Robin – Nginx switches...
View ArticleLibcox – Cross Platform System Calls
“Libcox is an ANSI-C Library which permit cross platform system calls and standard utilities among different operating systems via a system of commands similar to the standard UNIX one and backed by...
View Articlenetmap – the fast packet I/O framework
“netmap is a framework for high speed packet I/O. Together with its companion VALE software switch, it is implemented as a single kernel module and available for FreeBSD, Linux and now also Windows...
View ArticleConcurrency Kit
“Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures for the research, design and implementation of high performance concurrent systems…”...
View ArticleLinux kernel development
“So, seems that people are interested about Linux kernel development process. I thought it will be strange if the book about the Linux kernel will not contain a part that will describe how to take a...
View ArticleUsing the KVM API
“Many developers, users, and entire industries rely on virtualization, as provided by software like Xen, QEMU/KVM, or kvmtool. While QEMU can run a software-based virtual machine, and Xen can run...
View ArticleFast Memory Pool Allocators: Boost, Nginx & Tempesta FW
“Memory Pools and Region-based Memory Management Memory pools and region-based memory management allow you to improve your program performance by avoiding unnecessary memory freeing calls. Moreover,...
View ArticleTCP/UDP/ICMP traffic over UDP tunneling
By default mobile provider blocks any packet but UDP packet, unless you pay for the service. My method consists in sending TCP/UDP/ICMP frames as payload of an UDP packet to a known host (your server)....
View ArticleRecovering Live Data with GDB
“I recently ran into a problem where long-running program output was trapped in a C FILE buffer. The program had been running for two days straight printing its results, but the last few kilobytes of...
View ArticleWhat is a core dump and how do you parse one? (backtrace.io)
“A core represents a the state of a process at a point in time. It contains all the information that an engineer needs in order to inspect the process and its state even after the process has exited....
View ArticleA Fat Pointer Library
When you first see Cello, it’s hard to understand exactly what it is. You might think of Cello a framework, or perhaps as a syntax layer, or even a totally new programming language, but the best way...
View ArticleThe Lost Art of C Structure Packing
This page is about a technique for reducing the memory footprint of C programs – manually repacking C structure declarations for reduced size. To read it, you will require basic knowledge of the C...
View ArticleLibmill is a library that introduces Go-style concurrency to C
It can execute up to 20 million coroutines and 50 million context switches per second. http://libmill.org/index.html Go C go foo(arg1, arg2, arg3) go(foo(arg1, arg2, arg3)); ch := make(chan int) chan...
View Article