Производительность Elisp в Windows и Linux - PullRequest
3 голосов
/ 04 декабря 2008

У меня есть следующие мертвые простые функции elisp; первый удаляет разрывы заполнения из текущего абзаца, а второй проходит по текущему документу, применяя первый к каждому абзацу по очереди, фактически удаляя все одиночные разрывы строк из документа. Он быстро работает на моем маломощном компьютере Puppy Linux с использованием emacs 22.3 (10 секунд для 600 страниц Томаса Аквинского), но когда я перехожу на мощную машину с Windows XP с emacs 21.3, для того же документа требуется почти час. Что я могу сделать, чтобы он также работал на Windows-машине с emacs 21.3?

(defun remove-line-breaks () 
  "Remove line endings in a paragraph."
  (interactive) 
  (let ((fill-column 90002000)) 
    (fill-paragraph nil)))

(defun remove-all-line-breaks ()
  "Remove all single line-breaks in a document"
  (interactive)
  (while (not (= (point) (buffer-end 1)))
       (remove-line-breaks)
       (next-line 1)))

Прости мой бедный элисп; Я получаю огромное удовольствие от изучения Lisp и начинаю использовать возможности emacs, но я еще новичок в этом.

Ответы [ 2 ]

3 голосов
/ 04 декабря 2008

В качестве первой попытки вы должны загрузить и установить Emacs 22.3 для своего Windows-бокса, а затем сравнить скорость.

Разница в скорости не должна быть такой большой после обновления.

0 голосов
/ 04 декабря 2008

Возможно, это большое значение, которое вы присваиваете fill-column (они предлагают меньше 80).

...