Git Product home page Git Product logo

naesala's Introduction

Naesala

A Common C++ Library for Linux

Features

BlockingQueue

  • 分别用 条件变量(condition)、信号量(semaphore) 实现的简单阻塞队列

  • 提供 Linux、std C++ 11、Boost 三个版本

Common

  • Barrier:内存栅栏

  • ProcStat:统计Linux进程信息

  • Range:实现类似python range的功能

Configure

  • ConfParser:解析ini格式的配置文件

Container

  • LRU:最近最少使用缓存

  • Trie:前缀树

Hashmap

  • LinearHashmap:高性能线性hash表

Lockfree

  • LockfreeStack:无锁栈,实现自 Treiber 算法

  • LockfreeList:无锁队列,实现自 Michael Scott 算法

Benckmark

BlockingQueue

  • 条件变量和信号量实现的阻塞队列的性能比较

Hashmap

  • C++/Gnu/Boost/第三方开源/LinearHashmap hashmap性能比较

  • 16,777,216 operations

Hashmap Insert Traverse Find Delete
[std::map] 15.3459s 1.02469s 17.642s 2.027s
[__gnu_cxx::hash_map] 4.07776s 1.062s 4.17001s 0.33801s
[std::unordered_map] 5.132s 0.384036s 2.53397s 0.569996s
[std::tr1::unordered_map] 3.94881s 0.303182s 1.924s 0.334859s
[boost::unordered_map] 4.997s 0.442003s 3.85299s 0.574989s
[align_hash_map] 2.00799s 0.0600757s 1.04993s 0.0911587s
[LinearHashmap] 0.914718s 0.0471907s 0.746924s 0.0620157s

Lockfree

  • LockfreeStack、LockfreeList功能验证

  • 与boost::lockfree::queue的使用对比

  • 与加锁队列的性能对比

Dependings

  • cmake
  • boost-devel

================================ by Xiaojie Chen ([email protected])

naesala's People

Contributors

vorfeed avatar

Stargazers

 avatar vikchop avatar InsZVA avatar

Watchers

James Cloos avatar  avatar

Forkers

tide999

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.