构建高性能系统的C语言事件框架:libPhenom

分享到:

libPhenom 是 Facebook 发布的一个C语言事件框架,用于构建高性能和高可扩展的系统。支持多线程,提供内存管理和常用数据结构(hash tables, lists, queues),json处理。

  • Memory management with counters - record how much of which kinds of memory your application is using.
  • Jobs - decompose your application into portions of work and let the phenom scheduler manage getting them done
  • streaming I/O with buffers
  • Handy data structures (hash tables, lists, queues)
  • Variant数据类型,实现JSON的序列化和反序列化
  • A printf implementation with registerable object formatting

示例代码:

#include "phenom/defs.h"
#include "phenom/job.h"
#include "phenom/log.h"
#include "phenom/sysutil.h"
int main(int argc, char **argv)
{
// Must be called prior to calling any other phenom functions
ph_library_init();
// Optional config file for tuning internals
ph_config_load_config_file("/path/to/my/config.json");
// Enable the non-blocking IO manager
ph_nbio_init(0);
// Do stuff here to register client/server stuff.
// This enables a very simple request/response console
// that allows you to run diagnostic commands:
// `echo memory | nc -UC /tmp/phenom-debug-console`
// The code behind this is in
// https://github.com/facebook/libphenom/blob/master/corelib/debug_console.c
ph_debug_console_start("/tmp/phenom-debug-console");
// Run
ph_sched_run();
return 0;
}

项目主页:http://www.open-open.com/lib/view/home/1379399879568

昵    称:
验证码:

相关文档:

  • C语言编译器 Cilk
    Cilk多线程编程技术最早由MIT开 发,是一个基于Gcc编译器的开源项目。后来开发者创建了一个创业公司,推出改进的私有版本,整合到Wind...
  • Pelles C - 免费的C语言开发工具
    Pelles C是一款windows下的C IDE,支持调试,且为免费。...
  • C++ 插件框架:Pluma Framework
    Pluma 是一个开源的C++插件管理框架,以助于在应用程序中动态载入DLL而无需在意内部实现,它是轻量级、简化设计的。...
  • C语言协程库 cgreenlet
    和子例程一样,协程也是一种程序组件。相对子例程而言,协程更加一般和灵活,但在实践中使用没有子例程广泛。协程源自 Simula 和 Mod...
  • 使用 C++11 编写 Linux 多线程程序
    在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同...
  • 一个 C++ 的基准测试管理库:Celero
    对代码进行持续性开发和有意义的基准测试是一个复杂的任务。虽然测试工具本身(Intel® VTune™ Amplifier, SmartBear AQTime, Valgrind)与应用程...
  • C++的Properties读写库 libproperties
    提供一个简单易用的C++类Properties用以读写基于xml格式的配置文件。...
  • 高并发C++应用程序框架:saf application framework
    saf (saf application framework) 是一个高并发的c++应用程序框架,它以RPC为基础,提供了动态载入模块的特性,为服务端开发人员只用关注于程...
  • 一张图总结Google C++编程规范(Google C++ Style Guide)
    Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比较全面的说明图,可以在短时间内快速掌握规范的重点内容。不过规范毕...
  • STL之防止内存泄露
    可以自由分配和释放内存造就了C++的灵活和强大,但这也是使用C++最容易出现问题的地方,内存泄露问题,估计程序猿都会或多或少的...
  • C++连接MYSQL数据库
    一个实现C/C++连接MYSQL数据库的很好的例子...
  • C语言中间语言 CIL
    CIL 是 C 编程语言的前端工具,用来执行程序分析和转换。CIL 对程序进行解析和类型检查并将它编译和简化为 C 语言的子集。例如,在 CIL...
  • C++ 异常堆栈跟踪器:libcsdbg
    libcsdbg 是一个 C++ 异常堆栈跟踪器。当异常被抛出、捕获和处理时,libcsdbg 提供可工具来创建和处理异常堆栈的跟踪,并通过调用堆栈来...
  • C语言的 zip 开发库:libzip
    libzip 是一个 C 开发库,用于创建、修改 zip 压缩包。可直接从数据缓冲中添加文件,或者直接从其他 zip 归档中压缩数据。...
  • 轻量级CPP开发框架 RLIB
    RLIB是一款轻量级的C++开发框架, 提供一些常见的编程任务, 采用类似C#的命名方式....
  • C++ Virtual详解
    Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于...
  • C++类型安全SQL模版库:sqlpp11
    sqlpp11 是 C++ 的类型安全 SQL 模版库。...
  • Native Client SDK
    Google 发布了首个开发者预览版的 Native Client SDK, 开发者已经可以通过该SDK开发应用程序了。Google表示此举让 Native Client 走出了重要的第...
  • C/C++ 程序的性能分析工具 google-perftools
    google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源...
  • C++命令行参数解析器 CLPP
    C++ command line parameters parser (CLPP) 是一个命令行参数解析器,使用回调函数方式。只用于和 Boost C++ 库和 ISO C++ 使用。...