标题:使用聯盟體直接展開實現幾個比官方C語言庫快2~100倍的函數
取消只看楼主
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
结帖率:100%
已结贴  问题点数:20 回复次数:3 
使用聯盟體直接展開實現幾個比官方C語言庫快2~100倍的函數



2021-10-27 10:10
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
得分:0 
編程技巧
1. 變數 += 1 和 指標 += 1 消耗時間是一樣的, 故優先使用指標 += 1
2. 使用*和[]符號引用指標數據時需要進行轉換消耗性能,而->和.符號可以直接引用不消耗時間, 故優先使用結構體和聯盟體
3. 在一段已知長度的資料和另一段資料進行迴圈操作複製或讀取或比較時
如每次使用1節完成操作需要若干秒
其每次使用4節完成操作比1節快3~4倍
其每次使用8節完成操作比4節快3~4倍
其每次使用64節完成操作比8節快2倍
其每次使用512節完成操作比64節快20%
原因在于*和[]符號引用指標數據時和索引計算時的性能損失
故在已知資料長度時優先轉換為大結構體或大聯盟體進行操作
2021-10-28 00:54
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
得分:0 
回复 3楼 lin5161678
是的, 99.9%的程式師不知道這個技術機密
2021-10-30 12:41
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
得分:0 
將作業系統改為繁體中文語言包, 我發現開發環境和瀏覽器的字型都改變了

操作系統 -> 作業系統
服務器 -> 伺服器
內存 -> 記憶體
硬件 -> 硬體
軟件 -> 軟體
程序 -> 程式
程序員 -> 程式師
數據庫 -> 資料庫
文件夾 -> 資料夾
文件 -> 檔
項目 -> 專案
網絡 -> 網路
智能 -> 智慧
字體 -> 字型
打印 -> 列印
變量 -> 變數
指針 -> 指標
地址 -> 位址
字符 -> 字元
數組 -> 陣列
循環 -> 迴圈
枚舉 -> 列舉
運算符 -> 運算子

下面的代碼改了一下又提速了50%


2021-10-30 12:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507304-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.052598 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved