[Правовая оговорка: лично , я предпочитаю Vim. Правовая оговорка правовой оговорки: продолжать читать.]
Vim выделяется в маленьком: путем создания движения и действия разделяют понятия и предоставления услуг для сложных повторений, можно выполнить невероятно мощные операции редактирования в просто короткой последовательности нажатий клавиш. Можно легко сделать вещи в Vim в нормальном ходе редактирования, которое потребовало бы Вас к выпадающему к сценариям в Emacs. Кроме того, большая часть питания, которое Вы используете, выходит из поля, поэтому даже если Вы имеете обширный .vimrc
удовлетворение требованиям заказчика, возможности - Вы, будет в состоянии работать продуктивно с любой установка Vim.
Emacs выделяется в большом: путем отображения всех его понятий UI непосредственно к основным конструкциям и понятиям в Elisp, становится очень легко глобально представить функции определенных видов файлов или обстоятельств, делая Emacs чем-то как основанное на тексте и намного больше structuredly программируемой формы Excel. Это предполагает, что Вы собираетесь провести много времени, настраивая Вашу среду для личных нужд и предпочтений. Конечно, Emacs действительно прилагает все усилия, чтобы облегчить оставаться в той одной среде для всего и чего-либо, что можно хотеть сделать.
В конечном счете, ни один не выше. Они предлагают различные стили, и в зависимости от Ваших склонностей, один или другой удовлетворит Вашим личным нуждам и образу мыслей лучше. Всегда полезно знать обоих (плюс больше редакторов), конечно. Но Вы aren’t, собирающийся быть заметно более продуктивным этот путь или это.
Поэтому я сделал случайный большой zipfile:
$ ls -l *zip
-rw-r--r-- 1 aleax 5000 115749854 Nov 18 19:16 large.zip
$ unzip -l large.zip | wc
23396 93633 2254735
то есть 116 МБ с 23,4 КБ файлов в нем и временные данные:
$ time unzip -d /tmp large.zip >/dev/null
real 0m14.702s
user 0m2.586s
sys 0m5.408s
это предоставляемый системой двоичный файл распаковки из командной строки - без сомнения, столь же тонко настроенный и оптимизированный, как может быть чистый исполняемый файл C. Затем (после очистки /tmp;-)...:[1280 impression... и это Python со стандартной библиотекой - немного более требователен к процессору, но более чем на 10% быстрее в реальном времени, то есть прошедшее время .
Вы можете, конечно, повторить такие измерения (на вашей конкретной платформе - если у нее плохой процессор, например, медленный чип ARM, то дополнительные требования Python к процессору могут в конечном итоге сделать его медленнее - и ваш конкретные zip-файлы, представляющие интерес, поскольку каждый большой zip-файл будет иметь совершенно различное сочетание и, вполне возможно, производительность).
Для обработки больших файлов без загрузки их в память используйте новые методы на основе потоков в версии Python 2.6 zipfile
, например ZipFile.open
]. Не используйте extract
или extractall
, если только вы не очистили имена файлов в ZIP-архиве.
(Раньше вам приходилось читать
все байты в память, или обойти это как zipstream ;