iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

從 C++ 菜鳥到 Low-Latency 勇者:一場分秒必爭的賽局系列 第 6

[Day 6] 進度存檔 | Low-Latency 新手村冒險日誌

  • 分享至 

  • xImage
  •  

終於講完第一個小章節了!雖然有不少內容和《Effective C++》相關,但在重新複習的過程中依舊學到了新的知識點,也算是重新認識了一些以前忽略的細節。所以今天就讓自己輕鬆一點,換個方式來聊聊 Low-Latency C++。

這次不談過硬的技術細節,而是用一些生活中的比喻,來帶大家認識 Low-Latency C++。即使是沒有工程背景的小夥伴,希望也能藉此快速理解那些看似複雜的概念 :)

🚚小故事時間 —— 城市裡最快的外送員 Yoyo

Low-Latency 小鎮有一家外送店,為了贏得「年度最高效店家」的評選,接到訂單後想立刻把餐點送到客人手上。

一般外送員的流程是:
接單 → 看訂單 → 找餐 → 穿外套 → 發動機車 → 導航 → 上路 → 送達

雖然每個步驟看似只花一點點時間,但全部加起來可能要等好幾分鐘。就算員工勤勤懇懇使命必達,客人仍然常常抱怨出餐速度,因此負評連連。

轉機出現在某一天,店裡錄取了一位超低延遲外送員 Yoyo。她和別人不一樣,訂單一進來就回答「收到!」,而下一秒就開車出發了。這是因為她思慮周全:

  • 訂單一進來,就已經知道餐點放在哪裡。
  • 不用重新找路,常用路線早就記在腦中。
  • 機車一直保持最佳狀態,不需要臨時發動。
  • 連紅綠燈、巷口和容易塞車的地方,都提前做好準備。

這就是 Low-Latency 的概念。重點不只是跑得快,而是從「事情發生」到「程式做出反應」的時間,必須非常簡短且穩定。其迷人之處,並非讓外送員一直跑得很快,而是讓她幾乎隨時都能立刻出發。

而 C++ 就像這位外送員 Yoyo 手上的工具:

  • 少做不必要的事情。
  • 減少記憶體配置與複製。
  • 避免突然的延遲,例如 GC 或不可預期的 blocking。
  • 讓 CPU cache、memory、thread 都盡可能有效率。
  • 把每一個微小的等待時間都拿掉。

Low-Latency C++ 的技術也經常被應用在交易系統、即時行情、遊戲引擎等場景中。除了關注平均 1 ns 的高效能表現,更重視避免出現意外的毫秒級離群值。


上一篇
[Day 5] Advanced Modern C++ Foundations: Abstraction II
系列文
從 C++ 菜鳥到 Low-Latency 勇者:一場分秒必爭的賽局6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言