Giter Club home page Giter Club 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

LLVM Machine Code Analyzer

LIKWID tools

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.