2013-01-22 98 views
1

我正在使用nanoc爲我的項目生成文檔。我有幾個文件(~50)和佈局已經創建,但目前我正在處理單個文件。奇怪的是,它編譯這個文件不到第二秒,而是花費超過20秒的時間處理這些文件!Nanoc編譯時間很長

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

Site compiled in 22.96s. 

當我中止該過程後:用CTRL + C

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

線和nanoc view我的文件編譯好。你有什麼想法如何加快這個過程? nanoc在20秒內幹什麼?

回答

4

默認情況下,nanoc只顯示創建,更新或刪除的文件。不會顯示重新編譯但結果相同的文件。如果你通過--verbosenanoc compile,你會看到哪些文件被編譯但是完全相同。

所以,nanoc似乎什麼都不做的20秒可能是20秒,nanoc忙於重新編譯,但發現編譯的文件是相同的,所以它們沒有被顯示。

項目將被重新編譯,除非nanoc可以確定它們將保持相同。有時候,nanoc不能確定地知道一個文件在重新編譯時是相同的,所以在這種情況下,該項目將被重新編譯。

23秒,編譯一個網站與50頁似乎慢。它有助於選擇快速過濾器(例如,用於Markdown的RDiscount,用於語法着色的pygments.rb)。如果可以,請通過Ruby配置文件運行nanoc(例如,perftools.rb)以查明緩慢來自何處。

+0

你說得對。我通過--verbose,我看到問題在哪裏。在編譯後顯示的表格中,我看到colorize_syntax的總時間是22.33s。我使用pygmentize。哪一個會更快地着色HTML和JS snipets? – keepkimi

+0

切換到代碼。謝謝! – keepkimi

+0

Pygmentize非常慢。直接替換是[pygments.rb](https://github.com/tmm1/pygments.rb),這是更快的(上面已經提到)。看看[pull request#100 for developer.github.com](https://github.com/github/developer.github.com/pull/100)以瞭解加速!我個人使用CodeRay,雖然工作得很好。你能提供一個你現在加速的概念嗎? – ddfreyne