加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

算法 – 为什么编辑很长的行时文本编辑器会变慢?

发布时间:2020-12-30 18:18:48 所属栏目:资源 来源:网络整理
导读:线条很长时,大多数文本编辑器都很慢.建议的文本编辑器数据存储结构似乎是绳索,它应该不受长线修改的影响.顺便说一下,编辑器在简单的长线导航时甚至会很慢. 示例: 单个字符(如0在PSPad中重复100000次或在Vim中在单行上重复1000000次)会减慢光标在行尾时的

线条很长时,大多数文本编辑器都很慢.建议的文本编辑器数据存储结构似乎是绳索,它应该不受长线修改的影响.顺便说一下,编辑器在简单的长线导航时甚至会很慢.

示例:
单个字符(如0在PSPad中重复100000次或在Vim中在单行上重复1000000次)会减慢光标在行尾时的移动速度.如果文件中有多少字节但是在多行上调度,则光标根本不会减慢,所以我认为这不是内存问题.

这个问题的起源是如此常见?

我主要使用Windows,所以这可能与Windows字体处理有关吗?

解决方法

您可能正在使用像utf8这样的可变长度编码.编辑器希望跟踪每个光标移动所在的列,并且使用可变长度编码,没有快捷方式来扫描每个字节以查看有多少字符;这是一个很长的扫描线.

我怀疑使用像iso8859-1(latin1)这样的单字节编码,你不会看到长线的这种减速.如果使用单字节编码,则字符长度=字节长度,并且可以使用简单的指针算法快速计算列.像ucs-2这样的固定长度多字节编码应该能够使用相同的快捷方式(只需除以常量字符大小),但编辑可能不够聪明,无法利用它.

(编辑:南平站长网)

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

    推荐文章
      热点阅读