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()
分享到:
相关推荐
3. `mmap`映射文件到内存的方法提供了最快的整体读取速度,尤其适合处理大型文件。 综上所述,根据实际需求选择合适的读取方式非常重要。对于较小的数据量,`cin`和`scanf`都是不错的选择;而对于大数据量,考虑...
SDRAM(Synchronous Dynamic Random Access Memory)是同步动态随机存取存储器,是嵌入式系统中常用的内存类型,用于临时存储运行时的数据。本篇将详细讲解如何在DM642上进行SDRAM的读写操作,以及如何通过这些操作...
8. **内存管理**:动态内存分配(malloc, calloc, realloc, free)和内存映射(mmap)的使用,以及内存泄漏检测和避免。 通过这些源码,学习者不仅可以阅读理解代码,还能动手编译运行,亲自验证理论知识的效果,这...
RAM分为多种类型,包括动态随机存取内存(DRAM)和静态随机存取内存(SRAM)。DRAM通常用于主存,因其成本较低,而SRAM则用于高速缓存,由于其速度快但成本较高。 压缩包内的“RAM”文件可能是源代码、模拟程序或...
- `java.nio.channels.FileChannel`:提供了更高效的数据传输方式,可以进行文件的映射和内存操作,支持大文件的处理。 - `java.net.HttpURLConnection` 或 `java.net.URLConnection`:用于HTTP协议的文件上传和...
同时,内存管理和磁盘I/O优化也是提高系统性能的关键,例如使用缓冲池来减少磁盘读写,或者使用内存映射文件来改善大文件处理。 7. 用户界面(UI)与人机交互(HCI):一个良好的用户界面可以提升用户的使用体验。...
5. **测试平台**:为了验证设计的正确性,通常会创建一个测试平台,用随机数据进行读写测试,确保所有功能都能正常工作。 在"memory_cores"这个文件夹中,可能包含了上述各种模块的VERILOG源代码文件,以及顶层模块...
GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...
GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...
GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...
GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...
GMem.cpp和GMem.h是内存管理单元的源码文件。完成端口通讯模块内存管理。 haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 hyperlink ...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
它适合实时读写操作,与传统的基于关系型数据库的系统形成对比。 6. **Hive**:Hive提供了一种将SQL转化为MapReduce任务的机制,使得数据分析人员可以使用熟悉的SQL语法处理Hadoop上的大数据。 7. **Pig Latin**:...
- **文件读写**:保存和加载配置文件。 - **序列化和反序列化**:将数据结构转换为XML/YAML格式,并能恢复原样。 ##### 2.8 XML/YAML持久化 (C API) - **使用C语言接口进行持久化**:与上节类似,但侧重于C语言环境...
- **哈希(Hash)**:存储字段和值的映射表,适合存储对象数据。 - **列表(List)**:使用双向链表结构存储数据,适合消息队列等场景。 - **集合(Set)**:无序且元素唯一的数据结构,适合成员间的交并补运算。 - **有序...
- **SRAM读写与管理**: 静态随机存取内存,用于存放程序运行时的数据。 - **STM32内存管理驱动实现**: 初始化SRAM、分配释放内存空间。 **4.2 SD卡** - **SD卡的应用**: 存储大量数据。 - **SD卡驱动实现**: 初始...
- 了解文件读写的基本操作。 - 掌握异常处理机制(try-except-else-finally)。 - **实践操作:** - 读取文本文件并进行数据分析。 - 编写代码处理可能出现的各种异常情况。 #### 二、进阶技术学习阶段 **6. ...
- **dir**:列出当前目录下的文件和子目录,类似Unix中的`ls`命令。 #### D - disp - **disp**:显示变量的值,或者显示字符串。 #### D - display - **display**:显示变量的值,与`disp`类似。 #### D - ...