原创 nginx 地址對齊(ngx_align_ptr)

內存池,要在大塊連續內存上,分配小塊內存,指向小內存塊的地址是否對齊,對系統性能有一定影響:因爲 cpu 從主存上讀取數據很慢的,合理的地址對齊可以減少訪問次數,提高訪問效率。看看 nginx 的[內存池地址對齊操作: // p

原创 [redis 源碼走讀] sds

數據結構 爲了節省空間,增加內存的利用率,struct 數據結構沒有進行內存對齊,redis 的瓶頸不在 cpu 而在內存。同時,爲了靈活處理不同長度範圍的字符串,redis 定義了下面幾種數據結構。 typedef char *

原创 [redis 源碼走讀] 字典(dict)

字典 redis 是 key-value 的 NoSQL 數據庫,dict 是基本數據結構,dict 總體來說是一個哈希表,哈希表 O(1)O(1)O(1) 的時間複雜度,能高效進行數據讀取。dict 還有動態擴容/縮容的功能,

原创 學習總結有感

喜歡王垠的一篇文章《學習的智慧》,所有活知識都是對死知識思考實踐過程產生的結果。實際問題千變萬化,不可能讓你生搬硬套,沒有思考實踐積累,自然就不可能收穫解決問題的結果。 基礎決定你的下限,思維深度決定你的上限。當你陷入一個瓶頸,

原创 [redis 源碼走讀] 整數集合(inset)

整數集合 整數集合,是一個有序的數值數組對象,存儲的數值不允許重複。源碼在 intset.c 數據結構 /* Note that these encodings are ordered, so: * INTSET_ENC_IN

原创 MacBook Pro 2019 13寸 體驗

原因 團隊成員幾乎都用 mbp,很多項目配置和軟件使用都是針對 MacOS。 研發方向轉變:golang 和 python,語言跨平臺,感覺 MacOS 研發效率更高。 MacOS 自帶原生類 unix 系統,命令使用更方便了。

原创 c++文件服務器架構邏輯

1、概述     C/C++文件服務器主要是 FDFS (FastDFS)文件存儲系統的一個文件代理。文件服務支持 HTTP 協議,支持上傳,下載基本功能,支持秒傳文件(如果文件曾經上傳到服務器,服務會記錄文件信息,不用再次上傳),這些文

原创 大小端

大小端 就不說詳細定義了。 小端 特徵:數據的低字節保存在內存低地址,高字節保存在內存高地址。 注意:數據類型 char 和 unsigned char 類型是沒有大小端之分的。 網絡通信中,終端與服務器的通信數據需要保證大小

原创 進程內存分佈

程序進程是不能直接訪問物理內存的,系統通過虛擬內存方式管理進程內存。 圖片來源 《深入理解計算機系統》8.2.3 私有地址空間 工作流程 高級語言 -> 編譯器 -> 低級語言指令 -> 內核系統 <—> 硬件。 測試

原创 ssh 快捷登錄

效果 登錄阿里雲 機器 本地機器:macOS 遠程機器:120.25.83.123 配置 本地配置 # 創建密匙 ssh-keygen -t rsa # 拷貝密匙到遠程機器 scp ~/.ssh/id_rsa.pub

原创 進程測試 fork copy-on-write

系統 macos 測試 測試對象申請一塊內存,主進程 fork 子進程後監測子進程對內存數據修改前後狀況。 子進程數據修改前 子進程數據修改後 測試源碼 alloc_data g_data; int main() {

原创 [redis 源碼走讀] 跳躍表(skiplist)

跳躍表 張鐵蕾的博客將 skiplist 原理和算法複雜度描述得很清楚,具體可以參考。我分享一下自己對部分源碼的閱讀情況和思考。 數據結構 跳躍表是一個有序的雙向鏈表。理解 zskiplistNode 的 zskiplistLe

原创 [redis 源碼走讀] 對象(redisObject)

redis 對象 redis 對數據的處理用對象進行管理,目前有5種類型。每種對象類型並不是用單一的編碼類型實現,根據應用場景,往往多種編碼類型結合使用。 對象 數據結構 typedef struct redisObject {

原创 比較宏和宏函數的工作效率

通過 gdb 查看程序的彙編代碼,比較宏和宏函數的工作效率。 程序 例子中的最大值實現,宏和函數邏輯基本相同。宏在源碼預編譯階段,被替換爲代碼,增加了代碼的體積;函數多了參數傳遞,函數進棧和出棧等邏輯,自然資源消耗要比宏多。

原创 wsl & vscode & rsync

解決方案: vscode 用 rsync 同步 win10 和 wsl 之間的代碼。 使用 wsl 體驗: wsl 的子系統目前還沒有 centos,用 ubuntu 吧,感覺小問題也不少。wsl 相比虛擬機,確實方便了不少,相對應小系