博客 / 列表

Hankin_Liu收徒 - 中斷不控,延遲難穩:低延遲系統的終極痛點

一、引言 在金融交易、工業控制、高性能網絡等要求微秒級時延的系統中,“中斷”常常是影響尾延遲(Tail Latency)的關鍵因素之一。 在普通系統裏,中斷帶來的幾十微秒抖動並不算問題,但在低延遲系統中,即使是 幾微秒的不可控波動,都可能導致性能抖動、訂單錯失。 本文將從原理、影響、排查等維度,系統性介紹中斷對低延遲系統的影響。 二、低延遲系統的特點 低延遲系統的目標是在極短時間內完成

Linux , 中斷

Hankin_Liu收徒 - 從彙編看內存序:C++ 內存模型在 Intel 架構下到底做了什麼

一、引言 在多線程程序中,C++ 內存模型定義了跨線程訪問共享變量時的行為保證。 它規定了不同操作之間的 可見性 與 順序性,通過諸如 memory_order_relaxed、memory_order_release、memory_order_acquire、memory_order_seq_cst 等語義,讓開發者能夠在性能與正確性之間做出權衡。 然而,C++ 的內存模型只是一個

intel , c++

Hankin_Liu收徒 - 使用gperftools對C++程序進行profile定位性能瓶頸

本文將要學習如何使用gperftools工具定位C/C++程序的性能瓶頸,並用kcachegrind工具進行可視化展示。 gperftools簡介 gperftools(Google Performance Tools)是由谷歌開源的性能分析工具,能夠對程序進行profile,通俗的講就是能夠以一定的頻率對程序的堆棧進行採樣,採樣的次數越高,説明這個堆棧對應的代碼越熱。這個功能對於定位性能瓶頸十分

性能優化 , 性能瓶頸 , c++

Hankin_Liu收徒 - 深入理解 C++ happens-before:高級併發程序員的必修課

一、引言:為什麼需要 happens-before? 在多線程程序中,“語句順序” ≠ “執行順序”。 現代 CPU 和編譯器會對指令重排,只要單線程的結果不變,就可以自由優化。 然而,在併發場景下,這會導致嚴重的問題: bool ready = false; int data = 0; void writer() { data = 42; ready = true;

c++ , 多線程

Hankin_Liu收徒 - 手把手教你縮減 系統內存,性能測試/調優必備技能

在做軟件產品的性能測試時,有時需要限定系統的資源,比如CPU核數、內存大小、硬盤大小等,本文將要學習如何調整Linux服務器的可用內存大小。 查看當前系統的內存 通過以下命令可以查看當前系統的內存大小。 [root@ZX-B3775-16d292 ~]# free -h total used free shared buff/ca

性能測試 , 內存 , Linux