資料介紹
軟件簡介
binary_log 是一個用于 C++ 的快速二進制記錄器。
Highlights
- 以緊湊的二進制格式記錄消息
-
快速地
- 每秒數(shù)億條日志
- 基本數(shù)據(jù)類型的平均延遲為2-7 ns
- 查看基準(zhǔn)
- 提供解包器來壓縮日志消息
- 使用?fmtlib?格式化日志
- 同步日志記錄 - 不是線程安全的
-
Header-only library
- 此處提供單個頭文件版本
- 需要 C++20
Usage and Performance
以下代碼將 10 億個整數(shù)記錄到文件中。
#include <binary_log/binary_log.hpp> int main() { binary_log::binary_log log("log.out"); for (int i = 0; i < 1E9; ++i) BINARY_LOG(log, "Hello logger, msg number: {}", i); }
在一個現(xiàn)代工作站桌面上,上述代碼的執(zhí)行時間為~3.5秒。
Type | Value |
---|---|
Time Taken | 3.5 s |
Throughput | 1.4 Gb/s |
Performance | 286 million logs/s |
Average Latency | 3.5 ns |
File Size | ~5 GB |
foo@bar:~/dev/binary_log$ time ./build/examples/billion_integers/billion_integers real 0m3.561s user 0m2.422s sys 0m1.141s foo@bar:~/dev/binary_log$ ls -lart log.out* -rw-r--r-- 1 pranav pranav 6 Dec 6 07:52 log.out.runlength -rw-r--r-- 1 pranav pranav 32 Dec 6 07:52 log.out.index -rw-r--r-- 1 pranav pranav 4999934337 Dec 6 07:52 log.out
設(shè)計目標(biāo)和決策
-
實現(xiàn)單線程同步記錄器 - 不提供線程安全
- 如果用戶想要多線程行為,用戶可以選擇并實現(xiàn)自己的排隊解決方案
- 有許多眾所周知的無鎖隊列可用于此目的(moody::concurrentqueue、atomic_queue等)——讓用戶選擇他們想要使用的技術(shù)。
-
進入無鎖隊列的延遲足夠大
- 不關(guān)心多線程場景的用戶不應(yīng)該為此付出代價
- 查看atomic_queue benchmarks,在許多最先進的多生產(chǎn)者、多消費者隊列中發(fā)送和接收 4 字節(jié)整數(shù)(在 2 個線程之間,使用 2 個隊列)的平均往返延遲約為150-250 納秒。
- 避免多次寫入靜態(tài)信息
-
在運行時 hot path?中做盡可能少的工作
- 沒有任何形式的格式
- 所有格式化都將使用解壓縮二進制日志的解包器脫機進行
運作方式
binary_log
?將日志拆分為三個文件:
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32GUI使用TouchGFX二進制字體(Binary Font)功能實現(xiàn)字體動態(tài)更新
- 使用TouchGFX二進制翻譯(Binary Translation)功能實現(xiàn)動態(tài)更新翻譯
- 基于Arduino Uno的二進制時鐘 0次下載
- 基于FPGA的二進制相移鍵控設(shè)計方案 11次下載
- PLC實例講解之計數(shù)器值以二進制輸出資源下載 22次下載
- 二進制轉(zhuǎn)十進制的C51程序免費下載
- KEIL C51二進制數(shù)輸入宏的詳細(xì)方法程序說明 17次下載
- C6000系列嵌入式應(yīng)用二進制接口 3次下載
- 二進制加計數(shù)器淺析 6次下載
- 3位二進制計數(shù)器 1次下載
- “非二進制”中的新結(jié)構(gòu) 5次下載
- C語言教程之十進制轉(zhuǎn)換為二進制 0次下載
- C#教程之二進制存取圖片 9次下載
- 二進制加法程序【C語言版】 0次下載
- 二進制加法程序【匯編版】 0次下載
- 二進制處理中的一些技巧 337次閱讀
- 十進制、十六進制和二進制數(shù)制的區(qū)別 1236次閱讀
- 二進制加法的實現(xiàn)細(xì)節(jié) 2207次閱讀
- 二進制編碼器和二-十進制編碼器講解 1.1w次閱讀
- 格雷碼與二進制轉(zhuǎn)換 4547次閱讀
- 構(gòu)建一個4位二進制計數(shù)器 4197次閱讀
- 數(shù)字二進制計數(shù)器的設(shè)計和實現(xiàn) 1656次閱讀
- 基于FPGA的二進制時鐘設(shè)計方案 2065次閱讀
- 二進制解碼器到底是什么 6078次閱讀
- 如何利用二進制數(shù)實現(xiàn)BCD碼的轉(zhuǎn)換 2.7w次閱讀
- 函數(shù)轉(zhuǎn)換BCD編碼二進制數(shù)為整型數(shù) 6404次閱讀
- 格雷碼與二進制的轉(zhuǎn)換 1.7w次閱讀
- 8421bcd碼轉(zhuǎn)換二進制 7.1w次閱讀
- 二進制數(shù)據(jù)壓縮算法 1.9w次閱讀
- 解析二進制指數(shù)退避算法的過程 1w次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN119A-使用高度集成的DC/DC uModule穩(wěn)壓器系統(tǒng)為基于FPGA的復(fù)雜系統(tǒng)供電
- 499.88KB | 次下載 | 免費
- 3AN52-凌力爾特雜志電路合集,第1卷
- 185.9KB | 次下載 | 免費
- 4AN160-具有遠(yuǎn)程溫度檢測功能的單通道電源監(jiān)控器
- 451.34KB | 次下載 | 免費
- 5AN-423: 直接數(shù)字頻率合成器AD9850的幅度調(diào)制
- 159.13KB | 次下載 | 免費
- 6AN-1451: 用于電能計量應(yīng)用的RS-485故障安全和信號丟失檢測器
- 372.18KB | 次下載 | 免費
- 7EE-88:使用21xx編譯器在C中初始化變量
- 289.34KB | 次下載 | 免費
- 8AN-644:在微型轉(zhuǎn)換器上使用定時器2進行頻率測量(uC013)
- 62.47KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 129次下載 | 免費
- 4使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數(shù)發(fā)生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 22次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多