本系列聚焦於 C++ 程式設計與 Low-Latency 技術,透過五大主題深入探討低延遲系統的設計與優化,分享個人見解並在實作過程中持續提升專業能力。
無論是對 C++ 有興趣的初生之犢,或對 High Performance Computing 有經驗的武林高手,都歡迎加入這場艱難的學習之旅,挑戰自己的效能極限!
在 low-latency C++ 中,效能瓶頸往往不在於程式做了多少計算,而在於 CPU 為了取得資料究竟付出了多少成本。當多個 thread 同時存取資料時...
從 Machine Code 單元 開始,我們看到 compiler 如何把 C++ 轉成 CPU 真正執行的 instruction;透過 Data-Orie...
雖然心裡早就有所準備,但跟硬體有關的內容實在是難度太高,學到後來也逐漸感受到精疲力竭。幸好依舊努力不曾放棄,希望這場冒險終將有所回報。 終於完成兩大 Low-L...
在現代電腦系統中,CPU 的運算速度不斷提升,multi-core 處理器也已成為主流。為了充分利用硬體資源,軟體通常會採用 concurrency 或 par...
在 False Sharing Prevention 中有提到其與 std::atomic 之間的關係。而在高效能並行程式設計中,真正困難的不只是熟悉 atom...
在 Low-Latency C++ 的設計中,最大的困難並非只有程式速度的提升,而是在高併發及高負載下仍然維持可預期且穩定的延遲。對金融交易、即時行情、遊戲引擎...
Lock-free 並非完全不使用 lock 的技巧,而是在高競爭情況下避免傳統 mutex 帶來的阻塞成本。昨天已提到 Lock-free programmi...
在一般應用程式中,thread 要在哪一顆 CPU 上執行,不會是開發者需要操心的問題。作業系統的 scheduler 會根據 CPU 負載、Thread pr...
Thread pinning 並不只是「把 thread 綁到某顆 CPU」這麼簡單,其核心概念可以濃縮成三句話: CPU affinity 限制 threa...
前兩篇文篇討論了 thread pinning 的基本原理:透過 CPU affinity 限制 Thread 的執行範圍,降低 CPU migration 與...