为什么写字板打开大文件比记事本快这么多?

yoy*_*fun 1 windows windows-7 notepad text-editors wordpad

我认为记事本,作为最简单的文本阅读器也是最快的,但我发现当我尝试打开非常大的文本文件时,写字板打开它们的速度要快得多。

这可能是什么原因?

phu*_*clv 8

简单的 ?快速地

像记事本这样的普通基本编辑器可能非常简单,以至于它没有能力处理复杂的情况,因为它只用于简单的用例。

一个聪明的编辑将决定很多因素来决定哪个策略是最好的使用。例如,它不会像愚蠢的编辑器那样逐行逐字节读取文件,而是将其加载到大缓冲区中以便稍后快速读取。或者它可以将文件映射到内存。但是缓冲区或地图区域应该有多大?这取决于每个具体案例,编辑也应该考虑到这一点。与其将整个几 GB 的文件加载到内存中并因为根本不适合而卡住,智能编辑器只是检查文件大小并仅加载当前查看的部分,然后在需要时再查找。

所有这些都需要更仔细的设计,其中包含许多记事本中不存在的逻辑,因为它的源代码十年来没有太大变化。

请参阅为什么 Vim 可以比其他一些文本编辑器更快地打开大文件?

更新

Windows 10 build 17713 对记事本进行了大量更改,其中之一改进了记事本在大文件上的行为

  • 我们改进了在记事本中打开大文件时的性能。
  • 记事本现在支持Ctrl+Backspace删除上一个单词。
  • 箭头键现在可以正确地先取消选择文本,然后再移动光标。
  • 在记事本中保存文件时,行号和列号不再重置为 1。
  • 记事本现在可以正确显示不完全适合屏幕的行。

现在还有 Unix 行结束支持、文本缩放能力和自动换行模式下的状态栏

宣布 Windows 10 Insider Preview Build 17713

还确认Notepad 确实使用 memory-mapped file,但这是开始的部分。困难的是解析行并进行换行。打开超大文件时,即使 Notepad++ 也很糟糕。请参阅大 .txt 的性能不佳