2013-01-22 96 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