`
sdmzhu3
  • 浏览: 30455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

测试 内存映射文件 和文件随机 读写对比

阅读更多
def test_map():
    '''
    #make hello file
    dd if=/dev/zero of=hello.txt count=1024000
    
    output:
524288000
0.557378053665 0
0.0396151542664 0
0.211034059525 0
0.979896068573 0


    '''
    import mmap
    
    fp=open("hello.txt", "r+b")

    map = mmap.mmap(fp.fileno(), 0)

    print len(map)
    m=len(map)
    
    j=0
    x=0
    import time
    
    import random

    #随机访问
    t1=time.time()
    while 1:
        j+=1
        if j>100000:
            break
        x+=ord(map[random.randint(1,m)])
        
    print time.time()-t1,x
    map.close()

    fp=open("hello.txt", "r+b")
    map = mmap.mmap(fp.fileno(), 0)
    #连续访问
    t1=time.time()
    j=0
    while 1:
        j+=1
        if j>100000:
            break
        x+=ord(map[j+100000000])

    print time.time()-t1,x
    map.close()
    
    t1=time.time()
    j=0
    #连续
    fp=open("hello.txt", "r+b")
    while 1:
        j+=1
        if j>100000:
            break
        fp.seek(j+100000000)

        x+=ord(fp.read(1))
    print time.time()-t1,x
    fp.close()

    t1=time.time()
    j=0
    #文件的随机读写
    fp=open("hello.txt", "r+b")
    while 1:
        j+=1
        if j>100000:
            break
        fp.seek(random.randint(1,m))

        x+=ord(fp.read(1))
    print time.time()-t1,x
    fp.close()


0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics