注册 登录
编程论坛 C语言论坛

使用聯盟體直接展開實現幾個比官方C語言庫快2~100倍的函數

我善治鬼 发布于 2021-10-27 10:10, 1427 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

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

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

下面的代碼改了一下又提速了50%
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

1