資料介紹
軟件簡(jiǎn)介
binary_log 是一個(gè)用于 C++ 的快速二進(jìn)制記錄器。
Highlights
- 以緊湊的二進(jìn)制格式記錄消息
-
快速地
- 每秒數(shù)億條日志
- 基本數(shù)據(jù)類型的平均延遲為2-7 ns
- 查看基準(zhǔn)
- 提供解包器來壓縮日志消息
- 使用?fmtlib?格式化日志
- 同步日志記錄 - 不是線程安全的
-
Header-only library
- 此處提供單個(gè)頭文件版本
- 需要 C++20
Usage and Performance
以下代碼將 10 億個(gè)整數(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); }
在一個(gè)現(xiàn)代工作站桌面上,上述代碼的執(zhí)行時(shí)間為~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è)計(jì)目標(biāo)和決策
-
實(shí)現(xiàn)單線程同步記錄器 - 不提供線程安全
- 如果用戶想要多線程行為,用戶可以選擇并實(shí)現(xiàn)自己的排隊(duì)解決方案
- 有許多眾所周知的無鎖隊(duì)列可用于此目的(moody::concurrentqueue、atomic_queue等)——讓用戶選擇他們想要使用的技術(shù)。
-
進(jìn)入無鎖隊(duì)列的延遲足夠大
- 不關(guān)心多線程場(chǎng)景的用戶不應(yīng)該為此付出代價(jià)
- 查看atomic_queue benchmarks,在許多最先進(jìn)的多生產(chǎn)者、多消費(fèi)者隊(duì)列中發(fā)送和接收 4 字節(jié)整數(shù)(在 2 個(gè)線程之間,使用 2 個(gè)隊(duì)列)的平均往返延遲約為150-250 納秒。
- 避免多次寫入靜態(tài)信息
-
在運(yùn)行時(shí) hot path?中做盡可能少的工作
- 沒有任何形式的格式
- 所有格式化都將使用解壓縮二進(jìn)制日志的解包器脫機(jī)進(jìn)行
運(yùn)作方式
binary_log
?將日志拆分為三個(gè)文件:
- STM32GUI使用TouchGFX二進(jìn)制字體(Binary Font)功能實(shí)現(xiàn)字體動(dòng)態(tài)更新
- 使用TouchGFX二進(jìn)制翻譯(Binary Translation)功能實(shí)現(xiàn)動(dòng)態(tài)更新翻譯
- 基于Arduino Uno的二進(jìn)制時(shí)鐘 0次下載
- 基于FPGA的二進(jìn)制相移鍵控設(shè)計(jì)方案 12次下載
- PLC實(shí)例講解之計(jì)數(shù)器值以二進(jìn)制輸出資源下載 22次下載
- 二進(jìn)制轉(zhuǎn)十進(jìn)制的C51程序免費(fèi)下載
- KEIL C51二進(jìn)制數(shù)輸入宏的詳細(xì)方法程序說明 17次下載
- C6000系列嵌入式應(yīng)用二進(jìn)制接口 3次下載
- 二進(jìn)制加計(jì)數(shù)器淺析 6次下載
- 3位二進(jìn)制計(jì)數(shù)器 1次下載
- “非二進(jìn)制”中的新結(jié)構(gòu) 5次下載
- C語言教程之十進(jìn)制轉(zhuǎn)換為二進(jìn)制 0次下載
- C#教程之二進(jìn)制存取圖片 9次下載
- 二進(jìn)制加法程序【C語言版】 0次下載
- 二進(jìn)制加法程序【匯編版】 0次下載
- base64字符串轉(zhuǎn)換為二進(jìn)制文件 1516次閱讀
- 二進(jìn)制處理中的一些技巧 608次閱讀
- 十進(jìn)制、十六進(jìn)制和二進(jìn)制數(shù)制的區(qū)別 2075次閱讀
- 二進(jìn)制加法的實(shí)現(xiàn)細(xì)節(jié) 2855次閱讀
- 二進(jìn)制編碼器和二-十進(jìn)制編碼器講解 1.3w次閱讀
- 格雷碼與二進(jìn)制轉(zhuǎn)換 5355次閱讀
- 數(shù)字二進(jìn)制計(jì)數(shù)器的設(shè)計(jì)和實(shí)現(xiàn) 1868次閱讀
- 基于FPGA的二進(jìn)制時(shí)鐘設(shè)計(jì)方案 2268次閱讀
- 二進(jìn)制解碼器到底是什么 6270次閱讀
- 如何利用二進(jìn)制數(shù)實(shí)現(xiàn)BCD碼的轉(zhuǎn)換 2.8w次閱讀
- 函數(shù)轉(zhuǎn)換BCD編碼二進(jìn)制數(shù)為整型數(shù) 6586次閱讀
- 格雷碼與二進(jìn)制的轉(zhuǎn)換 1.8w次閱讀
- 8421bcd碼轉(zhuǎn)換二進(jìn)制 7.2w次閱讀
- 二進(jìn)制數(shù)據(jù)壓縮算法 2w次閱讀
- 解析二進(jìn)制指數(shù)退避算法的過程 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論