带Cache的FileStream

BambooCaep 2012-02-06 09:55:18
当创建一个TFileStream并顺序读取的时候,如果每次读取的字节比较少时,效率是相当低的。大家可以做一个测试:

var
aStream: TStream;
B: Byte;
T: TDateTime;
begin
if not OpenDialog1.Execute then
Exit;
Caption := '';
Application.ProcessMessages;
T := Now;
aStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
try
repeat
until aStream.Read(B, 1) = 0;
finally
aStream.Free;
end;
Caption := TimeToStr(Now - T);
end;

在我的笔记本上,处理一个3M的文件就用了12秒。

加入缓存处理后,用时不到0.2秒。

缓存处理的代码内容请参见我的博客: http://blog.csdn.net/bamboocaep

...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanghua 2012-02-06
  • 打赏
  • 举报
回复
谢谢分享
lzg827 2012-02-06
  • 打赏
  • 举报
回复
楼主,好人啊,多谢分享。
一定关注博客。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧