第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

計(jì)算字節(jié)片的所有非零字節(jié)的最快方法是什么

計(jì)算字節(jié)片的所有非零字節(jié)的最快方法是什么

Go
忽然笑 2022-05-18 16:55:44
我有一個(gè)像這樣的字節(jié)片:mbBytes := 1048576x := make([]byte, 16 * mbBytes)我知道bytes.Trim(s []byte, cutset string)讓我們切掉所有前導(dǎo)和尾隨cutset事件的方法,但似乎這種方法很慢——從這樣的切片中刪除所有零大約需要 80 毫秒。我嘗試了下面的替代方法;func nonZeroLength(b []byte) int {    a := 0    for _, v := range b {        if v != 0 {            a++        }    }    return a}這種方法比bytes.Trim().但是當(dāng) slice 填充了很多非零值時(shí)——這些方法非常慢。有沒有更快的算法或內(nèi)置方法從字節(jié)片中刪除零?
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

正如其他人指出的那樣,“它的真實(shí)大小”和“計(jì)算所有非零字節(jié)”是不同的東西,但我將其保留為術(shù)語。

計(jì)算所有非零字節(jié)的一種快速方法是使用bytes.Count來計(jì)算零字節(jié)并將其從數(shù)組的長(zhǎng)度中減去。

non_zero_count = len(x) - bytes.Count(x, []byte("\x00"))

這比你的函數(shù)快大約 10 倍。


查看完整回答
反對(duì) 回復(fù) 2022-05-18
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)