购买最快读写文件的代码(灌水勿进) ( 积分: 0 )

  • 主题发起人 主题发起人 留香客
  • 开始时间 开始时间

留香客

Unregistered / Unconfirmed
GUEST, unregistred user!
命题如下:
一个大型文件的读写,想要一个最好的缓冲机制。不能使用FileMapping,可以直接使用系统FastIo,或者用数组缓冲,最大限度的解决提高预读写的效率和内存占用的矛盾,购买源代码函数,¥150。嫌少可以商量。
 
内存映射应该是最快的吧
 
不能使用FileMapping,CreateFilemap等
 
FileMapping有会么坏处呢
 
不小心进来,才发现我灌水了
 
怎么和你联系呢?
钱无所谓,只想交几个朋友!!
 
我的QQ号码:724227004
 
TO 我爱PASCAL:
FileMapping没有什么坏处 只是我不想用这个 而且也不能跨平台使用
 
请问文件有多大呢?
 
70G多点。
 
只想到可以用预读取.猜测下一块读取的内容.如果不在缓存内的话就从文件预先读取到缓冲区.最重要的是命中率.
你的软件相当于CPU,缓存相当于CPU的缓存,你的文件相当于内存.
道理是一样的.主要是命中率,CPU如果预测失败的话也要浪费好几个时钟周期.不过CPU的命中率基本都是90%以上.
 
70G多点,一次读多大?
 
我现在正是这样的思路
我想购买这个源码 要有根据内存确定缓存大小的过程 我数学不是很好 不知道应该怎么建模型
请不吝赐教
 
看你的软件读取的方式了.CPU也是根据自己的指令集特点猜测的.
或者有一个笨办法.接管读写函数,做读写的位置,长度,顺序的统计.
然后根据最大的几种可能做预读取的优化.
 
那么怎样最大限度的提高预读的命中率呢
是不是开两个线程 一个预读 一个处理能提高效率?
求源码
 
看你对文件的处理方式了。如果是连续读取的,那么操作系统磁盘缓冲和硬盘缓存都会采用预读取邻近数据块的方式来提高效率。
如果你对此数据文件是断断续续处理的,那么可以根据处理逻辑来预读取邻近数据。这样命中率会高一点。
如果不涉及商业机密的话,楼主可以把对文件的处理逻辑告诉一下。
 
嗯 好的
就是自己定义的一个数据库
用一个索引来确定文件记录的位置。就是比如1324657是索引,我要顺序缓冲,【ufo!】我觉的你的思路应该是正确的。
 
买个两G的内存,全放在内存中,想怎么玩就怎么玩,如果文件大小有一定限度的吧,好像文件最大只能4G吧,就买四根1G的内存装上就行了。
 
呵呵 好主意
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部