gpt4 book ai didi

delphi - 在写入文件之前我应该​​使用 TMemoryStream 作为有效的缓冲区吗?

转载 作者:行者123 更新时间:2023-12-03 15:15:26 25 4
gpt4 key购买 nike

我正在使用 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 设备驱动程序中有足够的缓冲,或者只是代码的细节有问题。

感谢您的建议
问候,
菲尔W.

最佳答案

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

关于delphi - 在写入文件之前我应该​​使用 TMemoryStream 作为有效的缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/776861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com