它似乎很明显,实施通用的文本编辑器(由通用我的意思是,例如当它不一定能够处理大文件(100-200 MB(这仍然是很多,而且是更就像一个“一般情况”的极端例子)),仅仅将文本存储在一个连续的长缓冲区中是不可行的,因为性能将会吸引插入/删除。文本编辑器内部文本存储:最佳块大小?
尽管有很多方法解决这个问题,他们都是围绕着这样一个事实,即你必须将文本分成块,所以我的问题是:考虑到今天的计算机能力,最佳块大小是多少?文本缓冲区的实际大小是多少实际上开始变得太大而无法存储在简单的连续缓冲区中?当代计算机在移动大块字节时速度有多快? (为了清楚起见,我们只是说不能使用间隙缓冲区,每个区块都将是一个简单的连续阵列。)
好喜欢我写的,有可以有效地处理这些数据结构的数量,他们都(是的,绳索太)在其实现了“块大小”。唯一的另一种选择是使每个绳索段只包含一个字符/元素,我无法想象任何实现都是低效的。当然,当你拿着现有的图书馆时,你不会考虑这些细节。但是我想知道自己的低层实现的最佳块大小是多少。 – Cray
只是为了澄清一下,绳子中可能没有“设置”叶片尺寸,并且都是动态的,但最终绳子必须重新平衡,并且会有一些记忆移动,重新分配等等。上下文块大小同样重要。 – Cray