加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 在写入文件之前,我应该使用TMemoryStream作为有效的缓

发布时间:2020-12-15 09:43:48 所属栏目:大数据 来源:网络整理
导读:我正在使用D6 Professional,需要从内存中已有的许多小字符串创建特定格式的文本文件.出于性能原因,我正在考虑使用TMemoryStream来整理文件数据,然后通过TFileStream一次性将其写入磁盘. 但是我有一半被遗忘的记忆(可能是在D6之前的日子里)读取TMemoryStream
我正在使用D6 Professional,需要从内存中已有的许多小字符串创建特定格式的文本文件.出于性能原因,我正在考虑使用TMemoryStream来整理文件数据,然后通过TFileStream一次性将其写入磁盘.

但是我有一半被遗忘的记忆(可能是在D6之前的日子里)读取TMemoryStream效率低下的地方,特别是在它达到容量大小之后.我的Delphi(和Windows API)技能不足以检查自己的Classes.pas代码.

(OFFTOPIC)特别是这样的代码:( Classes.pas的第5152行):
????NewCapacity:=(NewCapacity(MemoryDe??lta – 1))而不是(MemoryDe??lta – 1);
(/无关)

令我担心的是,相关问题的结论
????Using MemoryStream to write out to XML
是不是要使用TMemoryStream,但没有说明原因 – 无论是由于TMemoryStream本身,还是因为TFileStream或I / O设备驱动程序中有足够的缓冲,或者只是有问题的代码的细节.

谢谢你的建议
问候,
PhilW.

解决方法

普通的TFileStram也可以进行缓冲,这足以优化I / O.将MemoryStream放在前面只会增加开销.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读