中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Python將byte數(shù)組轉(zhuǎn)換為int

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
代碼
import struct
import ctypes

def test_struct(buf, offset):
    return struct.unpack_from("I", buf, offset)[0]

def test_ctypes(buf, offset):
    return ctypes.c_uint32.from_buffer(buf, offset).value

def test_multi(buf, offset):
    return buf[offset] + (buf[offset+1] << 8) + (buf[offset+2] << 16) +(buf[offset+3] << 24)

buf_w = bytearray(5)
buf_w[1] = 1
buf_r = buffer(buf_w)

if __name__ == '__main__':
    import timeit
    t1 = timeit.Timer("test_struct(buf_r, 1)",
                   "from __main__ import test_struct, buf_r")
    t2 = timeit.Timer("test_ctypes(buf_w, 1)",
                   "from __main__ import test_ctypes, buf_w")
    t3 = timeit.Timer("test_multi(buf_w, 1)",
                   "from __main__ import test_multi, buf_w")
    print t1.timeit(number=1000)
    print t2.timeit(number=1000)
    print t3.timeit(number=1000)

結(jié)果

number = 10000
0.0081958770752
0.012549161911
0.0112121105194

number = 1000
0.00087308883667
0.00125789642334
0.00110197067261

number = 100
0.0000917911529541     # 9.17911529541e-05
0.000133991241455
0.00011420249939

number = 10
1.69277191162e-05
2.19345092773e-05
1.69277191162e-05

number = 1
1.00135803223e-05
1.00135803223e-05
5.96046447754e-06

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Python發(fā)郵件帶附件

下一篇:在Shell中使用日期運(yùn)算和比較