硬盘写入和内存写入到底有多大的差距

分别以1倍size,10倍size,100倍size写入同样大小的数据,分别测试大文件写入和内存拷贝。

tfwrite woaoniyoujifen,yueliangdaibiaowodexin!
small write 100w times begin ...
begin sec[1433735551], microsec[956743]
small write 100w time over.
end sec[1433735553], microsec[550436]
Large write 10w times begin ...
begin sec[1433735553], microsec[550470]
Large write 10w times end.
end sec[1433735553], microsec[719068]
SuperLarge write 1w times begin ...
begin sec[1433735553], microsec[719078]
SuperLarge write 1w times end.
end sec[1433735553], microsec[782787]

begin to 100w small strcpy
begin sec[1433735553], microsec[801839]
100w small strcpy over .
end sec[1433735553], microsec[879082]
begin to 10w large strcpy
begin sec[1433735553], microsec[885847]
10w Large strcpy over .
end sec[1433735553], microsec[930263]
begin to 1w Superlarge strcpy
begin sec[1433735553], microsec[936975]
1w SuperLarge strcpy over .
end sec[1433735553], microsec[978766]

从测试结果看出,在大文件写入上内存和硬盘的差距只有1倍。应该是硬盘和内存的IO效率差别并不是太大,文件写入和内存写入真正拉开的是随机小文件的读写上,硬盘需要寻道,内存地址直接访问。  至于1倍size的文件写入和10倍size文件写入有8倍差距,可能是和频繁的内核切换有关。

时间: 2024-11-11 03:05:53

硬盘写入和内存写入到底有多大的差距的相关文章

string为什么可以写入共享内存

我今天在想这个vector,map为什么不能写入共享内存,原来是因为new的时候只是new了这个对象在共享内存上,而真正的堆上的内存并没有在共享内存里面的,如果要想vector 可以共享就要重写分配器或者用boost的,看了我们那个结构体还是很复杂的,肯定不适用,看来只有改成数组,对于string为什么了,他也堆上分配的内存,找了半天,发现string底层用的是共享内存操作的,如果多个string共享,如果你不改他的值,他是不会拷贝一份的,原来是这个样子. string为什么可以写入共享内存,布

Win10到底需要多大内存才够用,你知道吗

Win10带来了语音助手.通知中心.Edge浏览器以及安全上的诸多改进,依然有人因为界面不够华丽,隐私保护有潜在威胁,体验中容易卡顿.蓝屏等诸多问题而选择不升级.如果你已经升级Win10,玩硬件的用户一般在这时候就要考虑一个问题:Win10操作系统对配置有什么要求呢?官方给出的基本配置需求和实际使用又有什么区别呢?今天我们就带着这些问题来分析一下Win10专业版到底需要多大内存才够用? ▼ ——官方给出最低支持配置 除开内存和处理器,诸如硬盘空间也只要16GB-20GB,和Win7.Win8大同

一个Java对象到底占多大内存?(转)

最近在读<深入理解Java虚拟机>,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046,里面提供的这个类也非常实用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

一个Java对象到底占多大内存

最近在读<深入理解Java虚拟机>,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好:http://yueyemaitian.iteye.com/blog/2033046,里面提供的这个类也非常实用: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3

CSV文件的写入(按行写入)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(按行写入) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很多程序在处理数据时会遇到csv格式文件 #csv文件的写入(按行写入) def getSortedValues(row): sortedValues=[]#初始化为空list keys=row.keys() keys.sort() for key in keys: sortedValues.appe

“非易失性内存”嫁接“内存计算”——高速安全的大数据时代来临

“非易失性内存”嫁接“内存计算” ——高速安全的大数据时代来临 题记 数据库奠基人Jim Gray:“磁带已经死了,磁盘已经落伍,闪存成为存储,内存才是王道”.“不管磁盘是否消融,闪存都是将来的一个趋势.” 石油一直直接影响着世累经济的发展速度和发展水平,现在,信息将发挥同样的作用.<经济学人>表示:“数据和信息日益成为商业的新能源,是一种与资本.劳动力并列的新经济元素”. 数据保护 大数据时代的机遇和挑战 大数据“风华正茂” 大数据时代,每两天的数据量就达到2ZB,相当于20世纪前人类文明所

linux 共享内存shm_open实现进程间大数据交互

linux 共享内存shm_open实现进程间大数据交互 read.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <sys/mman.h> #include <string.h> #include <errno.h> #include <unistd.h> /* int

一个Java对象到底有多大

经常遇到一个问题,需要在内存里缓存一批数据来提高效率(避免每次都读取DB).那问题来了,这些对象到底会占用多大内存呢,这直接决定了可以缓存多少条记录,以及上线之后是否会内存不够等问题. 来看几种解决方法. 测试 实践是检验真理的唯一标准!比如你要想cache10w条记录,那你就把10w条记录加载到内存,然后看看到底用了多少内存.至于怎么看内存花了多少,你可以 任务管理器 top Java Runtime类 blabla.... 我们来看看直接从Java程序里能获取到的Runtime. impor

NTFS文件系统的单个文件最大到底有多大?

于NTFS文件系统的单个文件最大到底有多大? 闲来无事突然想到这个问题,到网上搜索了一下也没有一个固定的解释. 于是到微软官方知识库去寻找答案: 可以看到NTFS单个最大文件是受卷大小的限制,我们平时使用的硬盘采用MBR分区方案,所以只能支持最大2TB的分区(硬盘).大于2TB的硬盘需要采用GUID分区方案. 所以在现阶段,NTFS文件系统的单个文件最大理论可以达到2TB,当然不考虑到NTFS自身带的来空间开销. 文档地址:http://support.microsoft.com/kb/1001