Почему Wordpad открывает большие файлы намного быстрее, чем блокнот?

942
yoyo_fun

Я думал, что блокнот, будучи самым простым текстовым ридером, также самый быстрый, но я обнаружил, когда пытался открывать очень большие текстовые файлы, что Wordpad открывает их намного быстрее.

Что может быть причиной этого?

0
Нет. Блокнот не один из самых быстрых. Это один из самых плохо написанных. TOOGAM 7 лет назад 2
Откройте большие файлы, такие как сотни МБ или несколько ГБ с помощью блокнота и посмотрите. Другие редакторы без проблем открывают его в мгновение ока, в то время как в блокноте все еще возникают проблемы с его открытием phuclv 7 лет назад 0

2 ответа на вопрос

5
phuclv

Просто! = Быстро

Простой редактор, такой как Блокнот, может быть настолько простым, что у него нет возможности решать сложные ситуации. Потому что он используется только для простых случаев использования.

Умный редактор определит множество факторов, чтобы решить, какую стратегию лучше всего использовать. Например, вместо того, чтобы читать файл построчно или побайтно, как глупый редактор, он будет загружен в большой буфер для быстрого чтения позже. Насколько большим должен быть буфер? Это зависит от каждого конкретного случая, и редактор должен учитывать это. Вместо загрузки целого файла объемом несколько ГБ в память и его зависания, потому что он просто не помещается, умный редактор просто проверяет размер файла и загружает только текущую просматриваемую часть, а затем выполняет поиск позже, когда это необходимо.

Все это требует более тщательного проектирования с большим количеством логики, которой нет в Блокноте, поскольку его исходный код почти не менялся в течение десятилетия.

См. Почему Vim может открывать большие файлы быстрее, чем некоторые другие текстовые редакторы?

Обновить

В сборку Windows 10 17713 внесено множество изменений в Блокнот, одно из которых улучшает поведение Блокнота при работе с большими файлами.

  • Мы улучшили производительность при открытии больших файлов в Блокноте.
  • Блокнот теперь поддерживает Ctrl + Backspace для удаления предыдущего слова.
  • Клавиши со стрелками теперь правильно отменяют выделение текста, а затем перемещают курсор.
  • При сохранении файла в блокноте номер строки и столбца больше не сбрасывается в 1.
  • Блокнот теперь правильно отображает строки, которые не помещаются полностью на экране.

Теперь есть также поддержка окончания строки Unix, возможность масштабирования текста и строка состояния в режиме переноса слов.

Анонс Windows 10 Insider Preview Build 17713

Я должен исправить тебя. ** Большинство ** код Windows не менялся в течение десяти лет. (На самом деле ближе к 17 годам). ** Блокнот ** не сильно изменился с тех пор, как Windows 1.0 (их первый графический интерфейс, хотя он был доступен в MS-DOS), выпущенная 31 год назад. user657451 7 лет назад 0
@ user657451 Нет, со времени Vista было много переписываний, поэтому MS 5 лет потребовалось на выпуск Vista. Кроме того, Notepad получил значительное изменение в (IIRC) XP для Unicode и поддержку больших файлов. До этого он не может открывать файлы размером более 64 КБ phuclv 7 лет назад 1
Это забавно, потому что в 10 все еще есть большинство оснасток NT4.0 и .mscs. без изменений. И этот реестр вещь. Я почти уверен, что все, что они на самом деле делали, - это пытались решить, как перенести DE на Mac для работы с API Windows. И когда это не удалось, они вернулись и сделали скиндж CE3.0 и назвали его 8. user657451 7 лет назад 0
@ user657451 Я уверен, что в каждой версии Windows много устаревшего кода из-за совместимости, но в Vista есть существенные изменения, такие как DWM, UAC ... которых раньше не было. Основная структура, очевидно, остается прежней, потому что, как вы можете удалить реестр, не нарушая совместимость. В каком смысле CE похож на 8? У него даже нет ядра NT phuclv 7 лет назад 1
нет, это даже не устаревший код для совместимости, это то, что представляет собой папка отвратительного winsxs. Количество потоков W10 (98, NT, Vista, 7, 8) здесь предполагает, что «совместимость» отсутствует. https://s3.amazonaws.com/neowin/forum/uploads/monthly_04_2012/post-125978-0-63250700-1334212270.jpg user657451 7 лет назад 0
Я согласен, что да, Microsoft расширили свой код. Кроме говорящей желтой собаки и скрепки, я не могу думать ни о чем, что они внедрили ** раньше ** любой другой ОС. user657451 7 лет назад 0
2
LMiller7

Блокнот - это не что иное, как оболочка вокруг элемента управления Windows Edit. Он был разработан для редактирования небольших объемов текста и был оптимизирован для этого. Ранние версии должны были работать в системах с очень ограниченными ресурсами, где эти оптимизации были важны. Windows 95 имела официальное требование только 4 МБ ОЗУ, а по техническим причинам элемент управления «Редактирование» был ограничен 64 КБ текста. Платформа NT не была так ограничена, но она также должна была работать с ограниченными ресурсами.

Разработка редактора для небольших файлов относительно проста. Разработка того, который эффективно работает с большими файлами, совсем не проста и требует много сложного кода. Маленькие и простые редакторы плохо работают с большими файлами. Все такие редакторы, а не только блокнот, будут подавлять файлы размером в несколько гигабайт, даже на мощном компьютере. Некоторые продвинутые редакторы могут легко справиться с этим.

Блокнот все еще хорошо работает по своему прямому назначению и за последние годы претерпел мало изменений. Элемент управления Windows Edit используется в той или иной форме в большинстве приложений Windows, поэтому вероятность несовместимости велика, если были внесены значительные изменения. Зачем рисковать внесением ненужных изменений? Опыт показывает, что самые тривиальные изменения могут привести к несовместимости приложений.

Если вам нужно редактировать большие файлы, есть много других доступных редакторов. Блокнот никогда не был предназначен для этого.