Giter VIP home page Giter VIP logo

ihft's Introduction

IHFT

BSD 3 License

Life is too short for malloc.

IHFT is microframework & laboratory for low latency applications.

Current building status matrix

Configuration Static Runtime Shared Runtime ASAN+UBSAN TSAN
Linux(GCC) Build Status Build Status Build Status Build Status
Linux(Clang) Build Status Build Status Build Status Build Status
MacOS(Clang) - Build Status Build Status Build Status

Goals

  • platform module
    • set cpu for current thread
    • set name for current thread
    • lock memory pages
    • status for isolcpus, nohz_full, rcu_nocbs
    • hyper-threading detector
    • cpu frequency scaling detector
    • swap detector
    • transparent huge pages detector
    • huge page system detector
    • core to core latency example
    • platform sysjitter example
  • channel module
    • one 2 one stream pod data queue
    • one 2 one stream moveable object queue
    • one 2 many stream pod data queue
    • one 2 many stream moveable object queue
    • one 2 each stream pod data queue
    • one 2 each stream moveable object queue
    • batch reader for all moveable object queues
    • python latency analysis tool
    • C++20 concepts
    • documentation with latency histograms
  • memory module
    • arena allocator
    • stream fixed pool allocator
    • page allocator for 4KB pages
    • huge page allocator for 2MB & 1GB pages
  • timer module
    • native cpu_counter
    • native cpu_pause
  • types module
    • box: placed object ownership
    • function_ref: non-owning reference to a callable
    • result: function output or error
  • misc module
    • simple human-readable TOML config system
    • sigaction based signal handler
  • logger module
    • simple client usage
    • non reliable delivery
    • smart serializer for input arguments
    • compile-time formatting pattern check
    • wait-free implementation
    • log pount source file and thread info
    • std::format as formatting backend
    • std::source_location as log point source
    • documentation with pictures
  • network module
    • udp demo
    • multicast demo
    • DPDK demo
  • engine module
    • logical cpu
    • task assignment
    • configuration verification
    • intelligent component loading
    • documentation with pictures
  • CI
    • github workflows CI
    • static binary
    • Clang support with libc++
    • GCC support with libstdc++
    • Catch2 unit tests
    • address sanitizer
    • thread sanitizer
    • ub sanitizer
    • clang format
  • DevOps
    • script for system latency optimization

Docs

Analytics

Channel

Compiler

Constant

Engine

Memory

Misc

Platform

Types

Dev Links

C++ reference

Compiler Explorer

Compiler Flags and Options

Agner Fog’s instruction tables

Intel Intrinsics Guide

WikiChip CPU information

Intel hardware information

AMD hardware information

OpenOnload is a user-level network stack

DPDK Accelerating Network Performance

TOML config file format

DevOps Links

Osnoise tracer

Disable cpu frecuency scaling

Eric Rigtorp Low Latency Tuning

Red Hat Enterprise Linux-7 Low Latency Tuning

Red Hat Enterprise Linux-7 Performance Tuning Guide

People

Erik Rigtorp personal blog

Martin Thompson mechanical sympathy

ihft's People

Contributors

proydakov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.