#%E6%95%88%E8%83%BD%E5%84%AA%E5%8C%96

GripNewsGripNews
2025-10-12

🌘 資料流圖的快速入門介紹
➤ 從 C++ 程式碼到效能預測的機器模型之旅
fgiesen.wordpress.com/2018/03/
本文旨在介紹資料流圖(Dataflow Graphs)的概念,特別是從 C++ 程式碼的角度出發,探討如何透過建立簡化的機器模型,來分析和預測程式的效能。作者認為,單純的效能剖析(profiling)只能描述現有系統的行為,而無法預測新設計的效能。為了做出更明智的決策,需要一個更精細的機器模型,這篇文章詳細闡述了一個類 RISC 的指令集模型,包含暫存器、記憶體存取、運算以及分支指令等,並強調了「如同規則」(as-if rule)的重要性,允許執行環境在尊重依賴性的前提下,自由重排指令以實現更高效率。
+ 這篇文章解釋得很清楚,對於想深入瞭解程式效能底層運作的人很有幫助。
+ 我喜歡作者使用簡化模型來解釋複雜概念的方式,這讓我更容易理解。

GripNewsGripNews
2025-10-12

🌘 PostgreSQL 18 的 psql 指令列工具支援查詢佇列化:提升效能的祕密武器
➤ 體驗 psql 佇列化帶來的驚人速度飛躍
postgresql.verite.pro/blog/202
本篇文章介紹 PostgreSQL 18 中 psql 指令列工具新增的查詢佇列化(pipelining)功能。此功能允許用戶端在不等待前一個查詢結果回傳的情況下,連續發送多個查詢,藉此大幅提升資料庫處理的吞吐量。作者透過實際的效能測試,展示了在不同網路環境下,啟用查詢佇列化後,INSERT ... ON CONFLICT 操作的處理速度能有數倍甚至數十倍的顯著提升。文章同時闡述了查詢佇列化的原理、其與舊有技術的比較,以及如何在實際應用中善用此新功能來優化資料庫效能。
+ 太棒了!一直覺得 psql 在處理大量 INSERT 時很慢,這個新功能聽起來很有潛力!
+ 感謝作者詳細的測試與解釋,對於需要批次處理資料的開發者來說,這絕對是個福音。

GripNewsGripNews
2025-10-10

🌗 我為何從 HTMX 轉向 Datastar
➤ 從 HTMX 到 Datastar:擁抱伺服器端主導的即時網頁體驗
everydaysuperpowers.dev/articl
作者分享了他從使用 HTMX 轉移到 Datastar 的經驗。最初,他像許多開發者一樣,利用 HTMX 將單頁應用程式轉變為多頁超媒體應用程式,有效減少了程式碼量並提升了使用者體驗。然而,在準備演講時,他發現 HTMX 與 AlpineJS 難以同步,需要耗費大量時間除錯。Datastar 不僅整合了兩者功能,還以更小的檔案大小提供了更輕量級的 API,減少了屬性設置的複雜性。更重要的是,Datastar 讓伺服器端主導更新邏輯,將 UI 更新邏輯集中管理,解決了 HTMX 中邏輯分散的問題,並能更輕鬆地實現多組件同步更新,顯著提升了開發效率和應用程式的即時性。
+ 這篇文章很有啟發性!我一直覺得 HTMX 的開發體驗有時會有點分散,尤

GripNewsGripNews
2025-10-09

🌘 Go 語言的快取友善資料結構:演算法不變,效能快 10 倍
➤ 解鎖 Go 程式碼的快取潛力,榨乾硬體效能
skoredin.pro/blog/golang/cpu-c
本文深入探討如何在 Go 語言中優化資料結構,以充分利用現代 CPU 的快取架構,實現顯著的效能提升。作者透過分析快取線、偽共享、資料導向設計等概念,並結合實際程式碼範例與效能數據,展示瞭如何透過結構填充、陣列結構化、熱/冷資料分離、 NUMA 感知及分支預測友善程式碼等技巧,大幅減少快取遺失,進而提升程式執行速度,即使在相同演算法下,效能也能達到 10 倍的差異。文章強調了實證的重要性,建議開發者務必透過基準測試來驗證優化效果。
+ 這篇文章太實用了!我一直被效能問題困擾,沒想到只是調整資料結構就能有這麼大的改善。特別是偽共享的部分,真是個隱藏的殺手。
+ 非常棒的技術分享,對於需要處理大量併發資料的 Go 專案來說,這絕對是必讀的。數據導向設計的概念很有啟發性。
語言 快取

GripNewsGripNews
2025-10-08

🌘 Boost.Bloom 的批次操作:關於主題多樣化的瑣碎筆記
➤ 透過管線化與位元遮罩,Boost.Bloom 實現插入與查詢的效能飛躍
bannalia.blogspot.com/2025/10/
Boost.Bloom 將於 1.90 版本開始支援批次(bulk)操作,旨在顯著提升插入與查詢的效能。此優化核心在於將計算布隆過濾器陣列位置的過程與實際記憶體存取分開。對於插入操作,新機制透過預先計算並預取位置,減少 CPU 停滯。對於查詢操作,尤其在 k > 1 的情況下,作者展示瞭如何透過一種基於位元遮罩(bitmask)與 `std::countr_zero` 的技術,大幅減少無效分支判斷的次數,從而實現高效能的管線化處理。此技術能減少重複迴圈和分支判斷,最大可提升約 3 倍效能,具體效果取決於過濾器大小與配置。
+ 這篇文章對 Boost.Bloom 的批次操作解釋得很清楚,特別是查詢操作的優化思路非常有啟發性!`std::countr_zero` 的

GripNewsGripNews
2025-10-07

🌘 緩存友善且支援動態扇出的 B+樹節點
➤ 以 C++ 巧妙規避 `std::vector` 的效能瓶頸,打造極致效能的 B+樹
jacobsherin.com/posts/2025-08-
這篇文章探討如何透過 C++ 的「結構技巧」(struct hack)或標準化的「未知邊界陣列」(array of unknown bound),克服 `std::vector` 在 B+樹節點實作中造成的記憶體配置間接性問題。作者提出將節點元數據和實際資料儲存在單一連續記憶體區塊中,以提升 CPU 快取命中率。為實現此目標,文章詳細說明瞭如何手動管理記憶體配置與釋放,以及如何在預先分配的記憶體緩衝區中使用「placement new」來建構 B+樹節點物件,藉此達成高效能且記憶體佈局優化的 B+樹。
+ 這篇分析太深入了!原本覺得 B+樹的效能瓶頸多半來自演算法,沒想到記憶體配置的細節影響這麼大。結構技巧原來可以這樣用,長知識了。
+ 手動管理記憶體配置和釋放聽起來好複雜,而且容易出錯。
++

GripNewsGripNews
2025-10-06

🌗 Cython 轉譯 Mojo 初探:以 scikit-learn 為例
➤ 探索 Mojo 的 Python 互操作性,並嘗試加速 Cython 程式碼
fnands.com/blog/2025/sklearn-m
本文作者 Ferdinand Schenck 分享了他將 scikit-learn 中的 Cython 程式碼初步轉譯至 Mojo 的經驗。他選用了 DBSCAN 演算法中的一個小型內部函式 `dbscan_inner` 作為測試案例,該函式僅接受三個參數,符合 Mojo 目前的 Python 互操作性限制。轉譯過程大部分是直接複製貼上 Cython 程式碼,並加入 Mojo 的模組初始化程式碼,過程出乎意料地順利。然而,首次的 Mojo 轉譯版本效能表現遠不如 Cython,作者推測是因為 Mojo 在處理 Python 物件時無法有效優化。為瞭解決此問題,作者嘗試將 NumPy 陣列轉換為 Mojo 的 Span 類型,此方法雖略顯繁瑣,但能

GripNewsGripNews
2025-10-06

🌗 VALORANT 的 128-Tick 伺服器:Riot Games 的技術解析
➤ 從 50ms 到亞 2ms:VALORANT 打造極致伺服器效能的技術歷程
technology.riotgames.com/news/
Riot Games 的工程師 Brent Randall 分享了 VALORANT 遊戲團隊如何克服技術挑戰,實現 128-Tick 伺服器的目標。文章詳細闡述了從最初伺服器每幀 50ms 的效能,透過程式碼優化、硬體調整和作業系統調校,最終將其提升至 2ms 以下的過程。團隊利用自製的 ValSubsystemTelemetry 系統來追蹤各項效能數據,並結合 Riot 的 Analytics Platform 進行視覺化分析,精準找出效能瓶頸,例如在複製(Replication)系統中,透過將輪詢機制改為遠端程序呼叫(RPC),大幅提升了效能,展現了系統性優化對於達成高標準伺服器效能的關鍵作用。
+
Games

GripNewsGripNews
2025-10-05

🌘 GPU 中的 G 代表圖形:Triton 核心、剖析、平行處理與更多
➤ 運用 Triton 語言,解鎖 GPU 圖形處理單元(GPU)的真實潛力
ut21.github.io/blog/triton.html
本文深入探討了使用 NVIDIA Triton 語言開發高效 GPU 核心的過程,特別是在模擬黏菌(Physarum)生長模型時。作者分享了從背景知識、模型理解、PyTorch 實作,到利用 Triton 進行核心優化的實踐經驗。透過 Triton,作者成功將原本在 PyTorch 中效率不彰的運算轉換為 GPU 上的高效執行,並利用 PyTorch Profiler 進行效能分析,展示了 Triton 在 GPU 程式開發中的潛力與優勢,尤其是在需要大量平行運算的場景下。
+ 這篇文章對於 Triton 的介紹很棒,讓我對如何在 GPU 上寫出高效能的程式有了新的認識。
+ 非常喜歡作者將黏菌模擬與 GPU 優化結合的方式,概念很有趣,技術細節也很紮實。
計算

GripNewsGripNews
2025-10-05

🌘 GitHub 程式碼庫展示效能優化與位元組封裝技巧
➤ 探索 GitHub 專案如何實現高效能與位元組優化
github.com/ashtonsix/perf-port
這是一篇關於 GitHub 上一個名為 \"perf-portfolio\" 的開源專案的介紹。該專案由 \"ashtonsix\" 維護,展示了效能優化和位元組封裝的技術細節。文章詳述了 GitHub 平臺的各項功能,包括程式碼管理、協作工具、安全性和 AI 輔助開發等,並引導使用者探索專案的程式碼、貢獻以及相關資源。整體而言,該專案旨在提供一個展示效能工程實踐的範例。
+ 這個專案聽起來很有潛力,希望能看到更多關於位元組封裝的實際應用案例!
+ GitHub 的功能介紹很詳細,但我更想知道這個專案具體是如何優化效能的。

GripNewsGripNews
2025-10-05

🌘 .NET 10 的垃圾回收變革對開發者的影響
➤ 掌握 .NET 10 垃圾回收的進化,釋放應用程式潛能
roxeem.com/2025/09/30/what-net
隨著 .NET 10 的推出,垃圾回收 (GC) 的基本觀念已有所演變,帶來了能顯著提升記憶體使用與速度的改進。這些優化主要透過執行緒開關及新的行為實現。本文將深入探討 .NET 10 GC 的新功能,包括逃逸分析促進堆疊配置、DATAS (動態適應應用程式大小) 預設啟用、區域大小調整,以及委派優化等。文章提供了技術細節、程式碼範例與衡量工具,協助開發者評估是否應採用這些改進,或針對特定情境進行調整甚至停用。
+ 逃逸分析聽起來很有潛力,希望能看到更多實際應用的案例。
+ DATAS 預設啟用感覺會是個雙面刃,需要仔細評估對我們系統的影響。
#.NET

GripNewsGripNews
2025-10-03

🌗 Python PEP 810 – 明確的延遲匯入
➤ 透過明確語法,提升 Python 程式啟動效能與資源使用效率
pep-previews--4622.org.readthe
這份 Python Enhancement Proposal (PEP) 提出了「明確的延遲匯入」作為一項語言級別的新功能。此提案旨在解決 Python 模組載入時即時執行的問題,允許開發者明確標記個別匯入為「延遲」。如此一來,模組的載入與執行將延遲到第一次使用該匯入名稱時才進行,進而顯著降低程式啟動時間、記憶體使用量,並減少不必要的計算。這對於命令列工具、測試套件以及依賴圖龐大的應用程式尤其有益,同時保持了對舊版 Python 的完全向後相容性。
+ 這項提議太棒了!特別是對於那些需要快速啟動的命令列工具,可以省去很多載入不必要模組的時間。
+ 我一直在尋找一種更清晰、更標準化的方式來處理那些僅用於型別提示的匯入,延遲匯入聽起來是個絕佳的解決方案。

GripNewsGripNews
2025-10-02

🌘 善用 68000 編譯式 C 迴圈
➤ 從簡單的清除螢幕功能,挖掘 GCC 編譯器與 68000 架構的效能潛力
dciabrin.net/posts/make-the-mo
本文探討如何在 Neo Geo 硬體上,利用 GCC 編譯器針對 68000 架構生成更有效率的 C 迴圈程式碼。作者從一個清除螢幕功能的實作出發,說明預設編譯設定可能產生的低效率組語,並透過啟用優化選項(如 `-fomit-frame-pointer` 和 `-O2`)來顯著改善程式碼品質,減少暫存器使用和記憶體開銷。此外,作者還展示瞭如何透過 `register` 關鍵字來引導編譯器使用特定的 CPU 暫存器,進一步微調迴圈的效能,最終目標是榨取寶貴的時脈週期,提升遊戲效能。
+ 這篇文章解釋得很清楚,特別是關於編譯器優化如何影響實際的組語輸出。之前只知道要開優化,但不知道為什麼。

GripNewsGripNews
2025-10-01

🌘 Cognition 開發 Blockdiff:我們如何為虛擬機磁碟快照打造專屬檔案格式
➤ 從研究員到系統工程師,解決 VM 啟動與快照的效能痛點
cognition.ai/blog/blockdiff
Cognition 分享了他們如何自行開發出一個名為 blockdiff 的開源工具,用以實現虛擬機(VM)磁碟的快速區塊層級差異比對與快照。此舉是為了克服現有解決方案在 VM 啟動與快照時間上的瓶頸。blockdiff 專注於空間效率和速度,透過只儲存變更的區塊來大幅縮減快照體積與建立時間,從數十分鐘縮短至數秒,顯著提升了使用者體驗,並為開發環境、睡眠喚醒及磁碟回滾等情境提供瞭解決方案。該工具的實現巧妙地運用了 Linux 檔案系統的稀疏檔案與寫時複製(Copy-on-Write, CoW)機制,特別是 XFS 檔案系統的支援,使快照操作幾乎僅依賴元數據處理,達成零額外負擔與極簡設計的目標。
+ 這真是個了不起的解決方案!能將 VM 快照時間從 30 分鐘縮短到幾秒,實在太驚人了。很好奇 blockdi

GripNewsGripNews
2025-09-30

🌗 CUDA PTX 入門簡介
➤ 深入瞭解 GPU 核心指令集,掌握效能優化的關鍵
philipfabianek.com/posts/cuda-
本文介紹 CUDA PTX(Parallel Thread Execution)的基礎知識,這是連接 CUDA 程式碼與 GPU 硬體的核心虛擬指令集。作者解釋了 PTX 如何透過兩階段編譯(PTX 轉譯成特定 GPU 的 SASS)來解決不同 GPU 架構間的相容性問題,並提供前向相容性。文章透過建立一個簡單的 PTX 程式碼編輯與執行環境,詳細解析了一個向量加法核心的 PTX 實現,包括參數傳遞、寄存器分配、指令執行流程,以及如何從 CUDA C++ 轉換為 PTX。
+ 這篇文章對於理解 PTX 的運作方式非常有幫助,尤其是 PTX 如何讓程式碼在不同 GPU 架構上相容。實際操作環境的設定也讓學習門檻降低不少。
+ 對 PTX 的解釋很透徹,能看到具體的 PTX 程式碼和對應的 CUDA C++ 邏輯,對於想要深入研究 GP

GripNewsGripNews
2025-09-30

🌘 C# 中的安全零拷貝操作
➤ 利用 Span<T> 和 ReadOnlySpan<T> 實現安全高效的 C# 記憶體操作
ssg.dev/safe-zero-copy-operati
本文探討 C# 中如何安全地實現零拷貝(Zero-copy)操作。作者首先說明傳統 C# 陣列存取由於編譯器的界限檢查(bounds-checking)可能影響效能,並以範例展示了有界限檢查和無界限檢查的彙編程式碼差異。接著,作者介紹了 C# 的 `unsafe` 關鍵字和指標(pointers)雖然能達成零拷貝,但潛藏著記憶體損毀和安全風險。為瞭解決這個問題,C# 推出了 `Span<T>` 和 `ReadOnlySpan<T>` 結構。這兩種結構結合了指標和長度,並且由於其 `ref struct` 的特性,它們被限制在堆疊上,保證了記憶體安全,即使在垃圾回收(GC)發生時,其指向的記憶體區域也 Guaranteed to outlive the Span 實例。這使得開發者能夠安全地傳遞陣列或記憶體片段的視圖,並在編譯時強
#

GripNewsGripNews
2025-09-29

🌘 優化 6502 圖像解碼器:從 70 分鐘縮減至 1 分鐘
➤ 從繁瑣到高效:解碼 Quicktake 150 圖像的效能煉獄之旅
colino.net/wordpress/en/archiv
作者分享了將 Apple II 上用於 Quicktake 150 相機的圖像解碼器,從原本耗時 70 分鐘大幅優化至 1 分鐘內的過程。文章深入探討了從 C 語言原始碼到全手寫組合語言的演進,並詳述了多項關鍵的演算法和程式碼層級的優化技巧,包括捨棄不必要的色彩資訊、減少暫存器使用、預先計算除法表、優化位元組處理以及利用硬體特性等,最終實現了驚人的效能提升。
+ 太厲害了!從 70 分鐘到 1 分鐘,這簡直是不可思議的進步。作者對細節的關注和對效能的執著令人佩服。
+ 這篇文章對於想在資源受限的平臺上優化程式碼的人非常有啟發性。雖然過程艱辛,但結
#6502 II

GripNewsGripNews
2025-09-28

🌗 無分支程式設計的奇特概念
➤ 避開 CPU 的預測陷阱:以位元操作加速你的程式碼
sanixdk.xyz/blogs/the-weird-co
這篇文章深入探討了「無分支程式設計」的概念,一種透過避免條件判斷和跳轉指令來優化程式效能的技術。作者解釋了 CPU 分支預測器的工作原理及其可能導致效能瓶頸的情境,並透過 C 語言的 abs()、clamp() 和 partition() 函數實例,展示瞭如何將有條件判斷的邏輯改寫為純粹的算術和位元運算,以消除分支。文章指出,雖然 abs() 和 clamp() 的效能提升不明顯,但 partition() 演算法在處理不可預測的分支時,無分支版本能帶來顯著的效能增益。
+ 這個概念真是太酷了!將複雜的邏輯轉化為位元操弄,讓我想起了一些底層的魔術,雖然閱讀起來有點挑戰,但效能的提升潛力巨大。
+ 對於效能至上的開發者來說,這篇文章提供了非常有價值的思路。特別是 partition() 的例子,展示了在真實場景中無分支程

GripNewsGripNews
2025-09-28

🌗 我如何意外創造了史上最快的 CSV 解析器
➤ 從分支程式設計的理論,到透過 SIMD 締造驚人的 CSV 解析效能
sanixdk.xyz/blogs/how-i-accide
本文作者分享了他如何從一個關於「無分支程式設計」的實驗性文章,進而挑戰最常出現分支判斷的 CSV 檔案解析問題。他解釋了傳統解析器因 CPU 分支預測失敗和記憶體存取瓶頸而效率低落的原因,並介紹了 SIMD 和 AVX-512 等技術如何透過一次處理多個資料來大幅提升效能。最終,他利用這些技術開發出一個驚人快速的 CSV 解析器,並將其包裝成 Node.js 套件。
+ 這篇文章深入淺出地解釋了 CPU 架構如何影響程式效能,尤其是 SIMD 的威力令人印象深刻!
+ 太棒了!我一直覺得 CSV 解析很慢,現在終於知道為什麼,也看到了解決方案。
架構 語言 解析 .js

GripNewsGripNews
2025-09-27

🌗 Windows 為何仍在微調臨界區段?
➤ 歷久彌新:Windows 臨界區段機制的持續演進與現代化調校
devblogs.microsoft.com/oldnewt
這篇文章探討了 Windows 作業系統中,儘管已經存在數十年的「臨界區段」(critical sections)機制,為何至今仍不斷進行微調。作者 Raymond Chen 解釋,這些調整並非針對潛在的程式錯誤,而是為了應對現代運算環境日益增長的速度、規模及並行性所帶來的效能挑戰。從早期為避免鎖鏈效應(lock convoys)而進行的公平性優化,到降低非分頁集區(non-paged pool)的記憶體佔用,再到近期為了偵測並緩解優先反轉(priority inversion)而做的效能提升,Windows 的臨界區段機制持續演進,以確保系統在更複雜的環境下依然能維持效能與穩定性。儘管這項機制歷史悠久,但它仍在不斷學習新技巧以適應當前運算的需求。
+ 看到老遊戲偶爾出包,就怪罪 Windo
bug

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst