Emacs работает с большими файлами XML - PullRequest
2 голосов
/ 04 мая 2009

Часто мне нужно читать большие XML-файлы (> 100 МБ), которые имеют довольно простую структуру. Я хотел бы использовать emacs, но он не очень хорошо поддерживает большие файлы. Я думаю, что, может быть, я смогу использовать Java-приложение, которое может выполнять синтаксический анализ SAX или StAX и предоставлять мне все необходимые операции (например, поиск). Каков «правильный способ» связи между emacs и внешним Java-приложением?

Ответы [ 2 ]

7 голосов
/ 04 мая 2009

Вы можете попробовать отключить режим font-lock-mode для этого конкретного буфера. Я открыл гораздо большие файлы, чем те, что с помощью Emacs. Я заметил замедление, только когда строки в файле больше, чем мой экран, и они начинают переносить. Отпуск их за пределы экрана и отключение блокировки шрифтов ускоряют производительность.

6 голосов
/ 04 мая 2009

Я не думаю, что существует единственный "правильный путь", но вот несколько идей:

  • заставить ваше Java-приложение представлять XML-документ в виде группы многопоточных статей в группах; пусть он говорит NNTP и использует Gnus, или придумайте свой собственный протокол и напишите для него бэкэнд Gnus (для вдохновения см. веб-браузеры )
  • представьте XML-документ как программу на Лиспе (S-выражения, элементы XML, в чем разница?) И напишите Swank backend , взаимодействующий с SLIME в Emacs затем используйте команды SLIME для выполнения запросов
  • написать драйвер FUSE , чтобы вы могли смонтировать XML-документ в виде файловой системы и использовать Dired для его изучения.
...