原创 高性能Linux: SSD分區對齊問題

分區對齊 分區對齊意味着分區與數據存儲設備(例如硬盤,固態驅動器(SSD)或RAID卷)的合理的邊界對齊。正確的分區對齊可確保數據訪問期間的理想性能。不正確的分區對齊將導致性能降低,尤其是SSD(內部頁面大小爲4,096或8,19

原创 LevelDB C++教程: Linux系統中安裝snappy

snappy簡介 Snappy(以前稱Zippy)是Google基於LZ77的思路用C++語言編寫的快速數據壓縮與解壓程序庫,並在2011年開源。它的目標並非最大壓縮率或與其他壓縮程序庫的兼容性,而是非常高的速度和合理的壓縮率。使

原创 LevelDB C++教程: 如何打開和關閉數據庫

簡介 LevelDB提供持久鍵值存儲功能。鍵和值是任意字節數組。根據用戶指定的比較函數,在鍵值存儲區內對鍵進行排序。 本文將介紹LevelDB的打開和關閉數據的基本操作,爲後面的鍵值存儲操作做準備。 代碼示例 下面的代碼功能實現了

原创 BOOST應用 無法解析的外部符號 "void __cdecl boost::throw_exception(class std::exception const &)"

簡介在Windows系統上,使用boost時發現未定義的外部符號的鏈接問題:thread_test_01.cpp.obj : error LNK2019: 無法解析的外部符號 "void __cdecl boost:: throw_exc

原创 LevelDB C++教程: Linux下編譯與安裝

簡介 LevelDB是由google開發的鍵值存儲庫,它提供了由字符串鍵到字符串值的映射,本文介紹如何在Linux下編譯安裝LevelDB。 源碼下載 使用git可以下載最新的LevelDB的源碼,目前最新的發佈版本爲v1.20。

原创 使用c++filt工具demangle C++符號

demangle符號名 在調試C++程序時, 經常會遇到未demangle的C++符號名, 不瞭解mangle的規則時, 並不太容易確定具體是哪個API. 比如, 使用objdump將boost日誌動態庫的符號表導出, 你是否能夠