Nanoc долгое время компиляции

Я использую nanoc для создания документации для своего проекта. У меня уже есть несколько файлов (~50) и макетов, но сейчас я работаю над одним файлом. Странно то, что он компилирует этот файл менее чем за секунду, а работа над чем-то занимает более 20 секунд!

Loading site data…
Compiling site…
      update  [0.71s]  output/docs/js/getData/index.html

Site compiled in 22.96s.

Когда я прерываю процесс после:

      update  [0.71s]  output/docs/js/getData/index.html

строка с CTRL+C и файл nanoc view my компилируется хорошо. У вас есть идеи, как ускорить процесс? Что nanoc делает 20 секунд?


person keepkimi    schedule 22.01.2013    source источник


Ответы (1)


По умолчанию nanoc показывает только те файлы, которые были созданы, обновлены или удалены. Файлы, которые были перекомпилированы, но оказались идентичными, отображаться не будут. Если вы передадите --verbose в nanoc compile, вы увидите, какие файлы скомпилированы, но идентичны.

Таким образом, те 20 секунд, когда nanoc, кажется, ничего не делает, скорее всего, являются 20 секундами, когда nanoc занят перекомпиляцией, но обнаруживает, что скомпилированные файлы одинаковы, поэтому они не отображаются.

Элементы будут перекомпилированы, если nanoc не будет уверен, что они останутся идентичными. Иногда nanoc не может с уверенностью сказать, что файл будет идентичен при перекомпиляции, поэтому в этом случае элемент все равно будет перекомпилирован.

Однако 23 секунды для компиляции сайта с 50 страницами кажутся медленными. Это помогает выбирать быстрые фильтры (например, RDiscount для Markdown, pygments.rb для окраски синтаксиса). Если можете, запустите nanoc через профилировщик Ruby (например, perftools.rb), чтобы узнать, где медлительность исходит из.

person Denis Defreyne    schedule 22.01.2013
comment
Ты был прав. Я прошел --verbose и вижу, в чем проблема. В таблице, показанной после компиляции, я вижу, что общее время colorize_syntax составляет 22,33 с. Я использую пигмент. Какой из них будет быстрее раскрашивать фрагменты HTML и JS? - person keepkimi; 22.01.2013
comment
Пигментация ужасно медленная. Прямой заменой является pygments.rb, который работает намного быстрее (уже упоминалось выше). Взгляните на запрос на включение #100 для developer.github.com чтобы получить представление об ускорении! Хотя я лично использую CodeRay, он тоже отлично работает. Можете ли вы дать представление об ускорении, которое вы получили сейчас? - person Denis Defreyne; 22.01.2013
comment
Я заменил pygmentize на coderay. 20 секунд против менее 1 секунды :) - person keepkimi; 23.01.2013