原创 Windbg調試死鎖

目錄 示例代碼 運行 分析 結論 擴展 參考資料 示例代碼 #include <iostream> #include <stdlib.h> #include <windows.h> #include <process.h> stati

原创 Linux下通過valgrind定位程序內存問題

目錄 內存泄露 重複釋放 錯誤釋放 相關資料 內存泄露 示例代碼 // MemoryLeak.cpp : 定義控制檯應用程序的入口點。 // #include <stdlib.h> #include <string> char* A

原创 Linux GDB分析死鎖

目錄 示例代碼 分析 結論 示例代碼 // DeadLock.cpp : 定義控制檯應用程序的入口點。 // #include <iostream> #include <stdlib.h> #include <thread> #inc

原创 Linux下減小動態庫大小的方法

在一些業務場景下,需要對動態庫的大小進行限制,主要有如下幾種方法: 1. 編譯選項使用-Os,表示以最小化大小爲優化方向 2. 去除-g選項,進而去除調試信息 3. 通過strip裁剪符號及調試信息 4. 只導出必要符號 Linux默認導

原创 儘管HTTP/3已經來了,HTTP/2也得了解啊

目錄 源起 協議格式 分幀層 幀類型 首部壓縮 交互流程 Curl 查看 HTTP/2 瀏覽器查看HTTP/2 其他 優化 HTTP/2使用率 參考資料 因爲HTTP/1.1性能以及速度方面的問題,人們想了一系列的優化措施。當優化措施依然

原创 手把手帶你體驗 HTTP/3

HTTP/3 是在 QUIC 基礎上發展出來的,並於 2019 年發佈。QUIC 存在兩個版本,早期 Google 打頭陣的 QUIC 稱之爲 gQUIC,IETF 標準化後稱之爲 IQUIC。gQUIC 使用 UDP 進行數據傳輸,但上

原创 C++程序員學習Java初感

看了一個多月的 Java 了,涉及的書籍有:《On Java 8》、《深入理解 Java 虛擬機》、《Java 併發編程的藝術》、《Manning Spring in Action 5-th Edition》以及極客時間上的《Java 併

原创 Linux CPU分析常用工具

本文內容是學習極客時間課程 如何“如何迅速分析出系統CPU的瓶頸在哪裏? 的總結。 如果想更有效學習,推薦極客時間的課程:Linux性能優化實戰 如果想更系統學習,可以閱讀《性能之巔:洞悉系統、企業與雲計算》以及其作者Brenda

原创 Linux系統IO分析常用工具

本文內容是學習極客時間課程 如何迅速分析出系統I/O的瓶頸在哪裏? 的總結。 如果想更有效學習,推薦極客時間的課程:Linux性能優化實戰 如果想更系統學習,可以閱讀《性能之巔:洞悉系統、企業與雲計算》以及其作者Brendan D

原创 Linux內存分析常用工具

本文內容是學習極客時間課程 如何“快準狠”找到系統內存的問題 的總結。 如果想更有效學習,推薦極客時間的課程:Linux性能優化實戰 如果想更系統學習,可以閱讀《性能之巔:洞悉系統、企業與雲計算》以及其作者Brendan D. G

原创 Golang火焰圖

文章目錄火焰圖1 原生 PProf 工具2 安裝FlameGraph3 安裝graphviz4 安裝go-torch5 結果 火焰圖 火焰圖(Flame Graph)是 Bredan Gregg 創建的一種性能分析圖表,因爲它的樣

原创 Golang pprof

1. 簡介 Golang 是一個對性能特別看重的語言,因此語言中自帶了 一些性能分析工具。可以生成相應的Profile(概要文件),譬如CPU Profile、Memory Profile、Block Profile、Mutex

原创 Ubuntu安裝MySQL成功後,普通用戶無權訪問:ERROR 1045 (28000): Access denied

Ubuntu安裝Mysql很簡單,但是也會遇到一些問題。 我的Ubuntu版本是18.04.1,安裝mysql版本是5.7。 Ubuntu安裝MySQL的步驟如下: 1. sudo apt-get install mysql-serve