fonwin / libfon9

C++11 Cross-platform infrastructure for OMS(order management system).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

libfon9 基礎建設程式庫

基本說明

  • libfon9 是 風言軟體工程有限公司 獨力開發的「C++ 跨平台基礎建設」程式庫
  • 使用 C++11
    • Windows: VS 2015
      • ./build/vs2015/fon9.sln
    • Linux:
      • gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
      • cmake version 3.5.1
      • ./build/cmake/build.sh
  • 跨平台,但不支援老舊的OS
  • 僅考慮 64 位元平台
  • 字串僅考慮 UTF8,source file 也使用 UTF8 編碼。
    • MSVC: 已在 fon9/sys/Config.h 裡面設定: #pragma execution_character_set("UTF-8")
    • GCC: 預設值已是 UTF-8, 或可強制使用: -fexec-charset=UTF-8 參數

在眾多 open source 的情況下,為何還要寫?

  • 追求速度
    • std 、 boost 非常好,但速度不是他們追求的。
    • 速度通用性 需要取捨時,libfon9 選擇 速度
    • 速度RAM用量 需要取捨時,libfon9 選擇 速度
      • libfon9 會考慮到 大量的RAM 造成 CPU cache missing,速度不一定會變快。
    • 速度問題分成2類: Low latency 、 High throughtput,當2者有衝突時,盡量選擇 Low latency
  • 降低第3方的依賴。
  • 更符合自己的需求。
    • 許多第3方的 library,速度很快、功能強大,但也遠超過我的需求。
    • 我個人傾向於:設計到剛好滿足自己的需求就好。

準備工作


libfon9 Topics

有空時也許可以針對底下的主題撰文介紹。

Signal/Slot

  • 這是首先釋出的項目。
  • 因為此機制最獨立、單純,與其他主題的關聯性最小。
  • 我們可以從這裡著手,把基本的開發環境建立起來。
  • 而且已經有一個很棒的效能測試 signal slot benchmarks 測試方法

演算法/容器

文數字轉換

Thread Tools

File/Serialize/Deserialize

Logging

通訊基礎建設

系統管理基礎建設

Simple FIX engine

雜項

About

C++11 Cross-platform infrastructure for OMS(order management system).

License:Apache License 2.0


Languages

Language:C++ 93.3%Language:C 1.9%Language:C# 1.7%Language:HTML 1.7%Language:JavaScript 0.7%Language:CMake 0.3%Language:Shell 0.2%Language:CSS 0.1%Language:Batchfile 0.0%Language:Makefile 0.0%