我需要在内存中保存一个文档的表示,并且正在寻找最有效的方法来做到这一点。
假设
- 文档可能非常大,最大为 100MB。
- 文档通常会保持不变——(即我不想做不必要的前期处理)。
- 文档中的更改通常会非常接近(即,当用户键入时)。
- 应该可以快速应用更改(无需复制整个文档)
- 将根据偏移量和新/删除的文本(而不是行/列)应用更改。
- 在 C# 中工作
目前的考虑
- 将数据存储为字符串。易于编码,快速设置,更新非常慢。
- 行数组,比较容易编码,设置速度较慢(因为我们必须将字符串解析为行),更新速度更快(因为我们可以轻松插入删除行,但查找偏移量需要对行长度求和)。
这种事情必须有大量的标准算法(它不是一百万英里的磁盘分配和碎片)。
谢谢你的想法。