@c++

動態 列表
@muzijun_68c14af5563a2

緩存排序算法

緩存排序算法(Cache-Aware / Cache-Oblivious Sorting) 目標:讓排序過程儘可能在 L1/L2 緩存內完成,減少 DRAM 帶寬與 TLB miss,從而在 MB~GB 級數據上獲得幾倍甚至十幾倍加速。 分為兩條路線: Cache-Aware(需手動指定緩存大小) Cache-Oblivious(無需參數,理論最優) 1 性能瓶頸

muzijun_68c14af5563a2 頭像

@muzijun_68c14af5563a2

昵稱 木子君_求贊

@muzijun_68c14af5563a2

帶緩存的Learned Sort 2.1排序算法

下面給出一份“一句話就能落地”的導讀: Learned Sort 2.1 的核心賣點是 「用機器學習模型代替傳統 pivot / radix,把元素一次性扔進幾乎正確的位置」,而 2025 年 MIT 團隊在 2.1 基礎上追加的 緩存優化層(Cache-Optimized Learned Sort)才是本文重點——它讓算法在 L3 的數據量 下仍能保持 Radix 級吞吐 且 內存佔用不爆炸。

muzijun_68c14af5563a2 頭像

@muzijun_68c14af5563a2

昵稱 木子君_求贊

@muzijun_68c14af5563a2

帶緩存的AdaRank c++實現

下面給出一份 可直接編譯運行 的「帶緩存 AdaRank」C++17 參考實現。 核心思想:把每次迭代中最熱的「梯度-權重」計算拆成 ≤ L2/2 的塊,用 L1-resident 小緩衝區存放下標,無分支批量更新;溢出桶同樣按塊處理,從而把原算法的隨機訪存變成順序、緩存友好的模式。 1 緩存設計總覽 原算法熱點 緩存改造 收益 隨機訪存

muzijun_68c14af5563a2 頭像

@muzijun_68c14af5563a2

昵稱 木子君_求贊

@muzijun_68c14af5563a2

帶緩存的RankNet C++實現

帶緩存的 RankNet(Cache-Optimized RankNet)——C++17 實現 把「pairwise 比較 → 梯度 → 權重更新」整條鏈路上最熱的隨機訪存,全部切成 ≤ L2/2 的塊, 再用 L1 索引緩衝 + 預取 + 無分支批量更新,在 L3 大數據 上仍能維持 全內存吞吐; 實測 1e7 pair×64 dim 比原始實現快 ~30 %,內存峯值仍 O(

muzijun_68c14af5563a2 頭像

@muzijun_68c14af5563a2

昵稱 木子君_求贊

@muzijun_68c14af5563a2

在GPU上實現堆排序

GPU 堆排序(Heap Sort on GPU)——2025 實現路線與最新進展 把「完全二叉堆」塞進 CUDA / HIP / OpenCL,利用 數據並行 + 共享內存 + 多級歸併 實現 O(n log n) 且 常數級遠小於 CPU 的堆排序; 2025 年最新工作集中在 Blocked-Heap + 共享內存緩存 + Learned-Index 建堆,實測 1e8 int 相

muzijun_68c14af5563a2 頭像

@muzijun_68c14af5563a2

昵稱 木子君_求贊

@dianliangxiaocheng_19854189632

破解雲VR教育普及難題: 點量實時雲渲染——實現跨終端無界協同

在數字化轉型浪潮中,教育領域正迎來深刻變革。尤其是虛擬現實(VR)技術,憑藉其沉浸式、交互式特點,成為推動教學方式演進的重要力量。然而,傳統VR教學方案受限於硬件性能、部署成本與使用門檻等因素,難以大規模普及。在此背景下,雲VR教學模式成為新的發展方向藉助以點量雲流實時雲渲染為代表的輕終端交互技術,可以突破傳統教學瓶頸,為教育行業帶來全新的可能性。 一、雲 VR 教學:邁向教育普惠與深度沉浸的新

dianliangxiaocheng_19854189632 頭像

@dianliangxiaocheng_19854189632

昵稱 點量實時雲渲染

@dianliangxiaocheng_19854189632

點量“雲電腦”助力教培企業,實現核心資產安全與雲端協同

在數字化轉型進程加速的時代背景下,知識產權與核心數據資產的安全管控,以及跨地域、跨團隊的協同效率,已成為教培企業高質量發展的關鍵議題。尤其對以教材研發為立身之本與發展核心的團隊來説,如何在構建嚴密防護體系保障核心資料安全的同時,實現辦公模式的靈活性與協同流程的高效性,正成為其數字化轉型道路上的重要戰略課題。 近日,我司憑藉先進的辦公“雲電腦”解決方案,成功為一家專注於教材研發的培訓企業打造了安全、

dianliangxiaocheng_19854189632 頭像

@dianliangxiaocheng_19854189632

昵稱 點量實時雲渲染

@jkkang

unordered_map性能被吊打!我用基數樹讓內存池性能暴漲幾十倍的秘密

哈嘍,大家好,我是小康! 今天要和大家聊一個特別有意思的話題——基數樹。 説實話,我第一次聽到這個名詞的時候,內心是懵逼的。基數?樹?這玩意兒到底是啥? 直到有一天,我在研究TCMalloc內存池源碼的時候,發現了一個神奇的現象:為什麼Google的工程師不用std::unordered_map來做頁號映射,而要自己實現一個看起來很複雜的數據結構? 帶着這個疑問,我深入研究了一下,結果發現了一個寶

jkkang 頭像

@jkkang

昵稱 小康

@xingchendahai_68d7dff410962

“c++”基本介紹與講解

1,什麼是“c++”? C++的發展歷程是一個不斷演進和完善的過程,以下是其主要發展階段: 起源(1979–1985):1979年,Bjarne Stroustrup在貝爾實驗室開始給C加入類,受Simula面向對象思想影響,用於系統編程和網絡仿真,最初稱為“C with Classes”。1983年,語言名字正式變為C++,象徵在C基礎上“自增”,此時具備了class、inline、//註釋

xingchendahai_68d7dff410962 頭像

@xingchendahai_68d7dff410962

昵稱 星辰大海

@fengdudeyema

深入理解指針Part1——C語言

”指針是C語言的精髓!“ ——出自學校教《C語言程序設計》的老師 1 內存和地址 1.1 內存 為了理解指針,首先要從內存和地址講起。 在講之前,先舉一個現實世界中的例子。大學宿舍都有門牌號,當需要找到某個學生時,我們只需要知道宿舍的門牌號就可以了。 在計算機中內存很重要,程序經常需要從內存中讀取和寫入數據。在購買電腦的時候,內存的大小常有8/16/32GB等,這些空間又是如何被管理的? 其實也是

fengdudeyema 頭像

@fengdudeyema

昵稱 BlackQid

@xingchendahai_68d7dff410962

神奇的“維克托”

**C++ 中 std::vector 全面解析(從基礎到進階) std::vector 是 C++ 標準庫(STL)中最常用的動態數組容器,能自動管理內存、動態擴容,比手動用 new[] 分配數組更安全高效,是日常開發的“高頻工具”。下面從基礎用法到進階技巧,帶你吃透它~** 一、基礎:怎麼用 std::vector? 1. 頭文件與初始化 用 std::vector 前必須包含頭文件 vect

xingchendahai_68d7dff410962 頭像

@xingchendahai_68d7dff410962

昵稱 星辰大海

@xingchendahai_68d7dff410962

論如何使用並調用c++自定義函數

在 C++ 中,自定義函數就像我們自己設計的 “工具”,需要先 “造工具”(定義函數),再 “用工具”(調用函數)。下面用通俗的方式講清楚調用方法和規則: 一、先搞懂 “函數三要素” 每個自定義函數都有三個關鍵部分,就像工具的 “説明書”: 返回值類型:工具做完事後給你的 “結果類型”(比如算加法後返回一個數字,就用int;如果只是打印文字不需要結果,就用void)。 函數

xingchendahai_68d7dff410962 頭像

@xingchendahai_68d7dff410962

昵稱 星辰大海

@hankin_liu

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

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

hankin_liu 頭像

@hankin_liu

昵稱 Hankin_Liu收徒

@jkkang

從 0 到 1 實現高性能日誌庫 MiniSpdlog — 這可能是最適合新手的日誌系統實戰項目 !

嘿,各位C++er們!我是小康 👋 今天我們來聊一個每個開發者都繞不開的話題——日誌記錄。 你是不是還在用最原始的 cout 和 printf 調試代碼?是不是因為線上程序出問題找不到日誌而抓狂?別急,今天我就來給大家盤點一下C++界那些大名鼎鼎的日誌庫,看看哪個最適合你的項目! 為什麼需要專業的日誌庫? 在深入介紹各種日誌庫之前,先説説為什麼我們需要專業的日誌庫: 專業需求 性能要求:生產

jkkang 頭像

@jkkang

昵稱 小康

@jkkang

傳統鏈表OUT了!侵入式鏈表讓Nginx、TCMalloc 性能飛躍的秘密武器

嘿,各位C++er們!我是小康。 👋 今天我要給大家揭秘一個讓無數程序員拍案叫絕的"黑科技"——侵入式鏈表! 你可能會問:不就是個鏈表嗎,有什麼神奇的? 別急,當你看完這篇文章,你會發現這個看似簡單的數據結構,竟然是Nginx、Linux內核、TCMalloc等頂級項目的性能秘密武器! 🤔 從一個"奇怪"的現象説起 先看一段讓人疑惑的代碼: // 這段代碼在幹什麼?為什麼要這樣寫? stati

jkkang 頭像

@jkkang

昵稱 小康

@hankin_liu

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

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

hankin_liu 頭像

@hankin_liu

昵稱 Hankin_Liu收徒

@artificer

我的C++代碼整潔之道,你也能做到!

記得剛入行時一位老哥就跟我説“代碼是寫給人看的”,我很認同這句話,但是直到如今也不敢説自己能完全做到,即便如此我依然有些心得體會,於是便有了本文。 實踐一: struct僅用於數據封裝。 參考示例 struct Point { int _x = 0; int _y = 0; }; 實踐二: 類名採用帕斯卡命名法(大駝峯),使用名詞或名詞短語命名,除非專有名詞或廣泛被使用的縮

artificer 頭像

@artificer

昵稱 artificer

@lengxi_16

C/C++(IDEA外部工具)開發環境(直譯不含CMake)極速配置手冊:宏變量(參數詳解) +Clion(jvm參數表)

🚫 付費插件黨建議划走 🎯 白嫖黨、多語言戰士、IDE統一教信徒請繼續 💡 想體驗"一個IDE學多種語言"的快感嗎?這篇指南就是你的答案! 🙏 大家好! 最近一直在爆肝更新"四語言同步學"教程,C/C++系列一直未來得及更(求輕噴😅)。今天特地為大家帶來一篇純白嫖向的實用指南—— 今天特地為大家帶來一篇實用指南——JetBrains IDE外部工具配置C/C++開發環境。 這可能是

lengxi_16 頭像

@lengxi_16

昵稱 ERP老兵_冷溪虎山