`
sdmzhu3
  • 浏览: 30814 次
  • 性别: 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
分享到:
评论

相关推荐

    探寻C++最快的读取文件的方案 C++ IO优化

    3. `mmap`映射文件到内存的方法提供了最快的整体读取速度,尤其适合处理大型文件。 综上所述,根据实际需求选择合适的读取方式非常重要。对于较小的数据量,`cin`和`scanf`都是不错的选择;而对于大数据量,考虑...

    DM642的SDRAM读写程序

    SDRAM(Synchronous Dynamic Random Access Memory)是同步动态随机存取存储器,是嵌入式系统中常用的内存类型,用于临时存储运行时的数据。本篇将详细讲解如何在DM642上进行SDRAM的读写操作,以及如何通过这些操作...

    Linux/UNIX系统编程手册 源码

    8. **内存管理**:动态内存分配(malloc, calloc, realloc, free)和内存映射(mmap)的使用,以及内存泄漏检测和避免。 通过这些源码,学习者不仅可以阅读理解代码,还能动手编译运行,亲自验证理论知识的效果,这...

    RAM.rar_site:www.pudn.com_throughpcj_简单RAM

    RAM分为多种类型,包括动态随机存取内存(DRAM)和静态随机存取内存(SRAM)。DRAM通常用于主存,因其成本较低,而SRAM则用于高速缓存,由于其速度快但成本较高。 压缩包内的“RAM”文件可能是源代码、模拟程序或...

    JAVA 版本 断点续传

    - `java.nio.channels.FileChannel`:提供了更高效的数据传输方式,可以进行文件的映射和内存操作,支持大文件的处理。 - `java.net.HttpURLConnection` 或 `java.net.URLConnection`:用于HTTP协议的文件上传和...

    细胞识别统计系统

    同时,内存管理和磁盘I/O优化也是提高系统性能的关键,例如使用缓冲池来减少磁盘读写,或者使用内存映射文件来改善大文件处理。 7. 用户界面(UI)与人机交互(HCI):一个良好的用户界面可以提升用户的使用体验。...

    SRAM CORE VERILOG

    5. **测试平台**:为了验证设计的正确性,通常会创建一个测试平台,用随机数据进行读写测试,确保所有功能都能正常工作。 在"memory_cores"这个文件夹中,可能包含了上述各种模块的VERILOG源代码文件,以及顶层模块...

    vc++ 应用源码包_1

    GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...

    vc++ 应用源码包_2

    GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...

    vc++ 应用源码包_6

    GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...

    vc++ 应用源码包_5

    GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...

    vc++ 应用源码包_3

    GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    Hadoop大数据权威指南 第四版 英文版 The.Definitive.Guide_4.edition

    它适合实时读写操作,与传统的基于关系型数据库的系统形成对比。 6. **Hive**:Hive提供了一种将SQL转化为MapReduce任务的机制,使得数据分析人员可以使用熟悉的SQL语法处理Hadoop上的大数据。 7. **Pig Latin**:...

    opencv2函数使用手册

    - **文件读写**:保存和加载配置文件。 - **序列化和反序列化**:将数据结构转换为XML/YAML格式,并能恢复原样。 ##### 2.8 XML/YAML持久化 (C API) - **使用C语言接口进行持久化**:与上节类似,但侧重于C语言环境...

    60道关于Redis的常见面试题.pdf

    - **哈希(Hash)**:存储字段和值的映射表,适合存储对象数据。 - **列表(List)**:使用双向链表结构存储数据,适合消息队列等场景。 - **集合(Set)**:无序且元素唯一的数据结构,适合成员间的交并补运算。 - **有序...

    基于LabVIEW的ARM Cortex-M3嵌入式开发宝典---STM32F103

    - **SRAM读写与管理**: 静态随机存取内存,用于存放程序运行时的数据。 - **STM32内存管理驱动实现**: 初始化SRAM、分配释放内存空间。 **4.2 SD卡** - **SD卡的应用**: 存储大量数据。 - **SD卡驱动实现**: 初始...

    Python最佳学习路线图

    - 了解文件读写的基本操作。 - 掌握异常处理机制(try-except-else-finally)。 - **实践操作:** - 读取文本文件并进行数据分析。 - 编写代码处理可能出现的各种异常情况。 #### 二、进阶技术学习阶段 **6. ...

    matlab命令大全

    - **dir**:列出当前目录下的文件和子目录,类似Unix中的`ls`命令。 #### D - disp - **disp**:显示变量的值,或者显示字符串。 #### D - display - **display**:显示变量的值,与`disp`类似。 #### D - ...

Global site tag (gtag.js) - Google Analytics