亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

在關鍵路徑上,編碼需謹慎

系統 1882 0

將大小為1G的src緩沖區中的數據復制到dst緩沖區中,并且跳過所有空格。

下面兩種循環風格,哪一種你更喜歡?

在關鍵路徑上,編碼需謹慎

哪種效率更高呢?Try it~

-----------------------------------

在關鍵數據路徑上,如果需要對每一字節都進行檢查,那么使用的檢查方法需要格外謹慎。在上例中,I直接檢查src[i]是否為空格,II采用了isspace函數來檢查,直接檢查只需要一次比較,而函數調用則需要一次call和一次比較(isspace函數內部)。從理論上分析,后者速度肯定要慢,實際呢?我以為isspace在libc中只是一個宏,查了一下代碼才知道,它定義如下(NOT from glibc):

#define _S 0x08

extern const char *_ctype_;

__CTYPE_INLINE int isspace ( int c)
{
return (c == - 1 ? 0 : ((_ctype_ + 1 )[( unsigned char )c] & _S));
}

點擊查看libc對isspace的完整定義

雖然定義成了一個inline函數,但是依然沒有直接比較來得直接簡單。

簡單地將isspace替換成直接比較,讓我的解壓速度(我在做xxx的解壓)從140MB/s上升到200MB/s,非常不錯。

關鍵路徑上編碼,要減少頻繁的函數調用,不能只要風度不要溫度。

在關鍵路徑上,編碼需謹慎


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国内精品久久久久久久亚洲 | 美国免费三片在线观看 | 欧美一区二区三区不卡片 | 久久88色综合色鬼 | 伊人久久丁香色婷婷啪啪 | 四虎影视永久地址www成人污 | 中文字幕在线视频精品 | 91视频网址入口 | 久久sese | 国产最新在线视频 | 日韩人成| 国产精品久久久久久久久久久久 | 在线中文字幕网 | 正在播放国产精品 | 男人资源站 | 免费一级欧美片在线观看 | 5060网永久免费一级毛片 | 九九久久久 | 欧美成人aa大片拍拍拍 | 久久精品在线观看 | 精品综合久久久久97 | 草莓视频一区二区精品 | 婷婷色网站 | 男女污污视频在线观看 | 宅男看片午夜大片啪啪mv | 久久99热只有视精品6国产 | 在线综合+亚洲+欧美中文字幕 | 最新精品亚洲成a人在线观看 | 老司机观看精品一区二区 | 国产毛茸茸 | 亚洲欧美日韩v中文在线 | 亚洲视色 | 精品久久久久久久一区二区伦理 | 免费的一级毛片 | 亚洲欧美一区二区久久 | 欧美一级毛片免费高清的 | 黄页成人免费网站 | 香蕉视频黄色片 | 国产精品国色综合久久 | 久久久99视频 | 国产桃花视频 |