Docpad - 如何找出缓慢的原因?

时间:2014-05-26 09:15:38

标签: node.js docpad

我正在将我的tumblr博客迁移到docpad并开始使用此样板:https://github.com/ervwalter/ewalnet-docpad

现在我的问题是“docpad run”运行需要58秒,而livereload运行需要23秒。我写了这个样板的作者,他说他也有同样的东西,但是这并没有太多困扰他。

但我不想在博客文章中等待半分钟来看看它的样子,所以我试图让它更快。我尝试使用nodetime进行性能分析,但我没有看到每种方法的深入分析。我的假设是部分时间丢失了,它将整个帖子发送给部分

如何配置Docpad,以便查看时间丢失的位置?我知道问题非常广泛,但我在DocPad上进行性能优化时发现的是,你应该让Docpad不要解析静态文件。

更新缺少的链接是我需要在nodetime上启动CPU profiler

  1. 配置nodetime,描述为here
  2. 在nodetime
  3. 上启动CPU profiler
  4. 启动docpad:docpad --profile run
  5. 不幸的是,就我而言,输出并没有多大帮助。 results of my run显示81% of the time is spent in ambi.js,它似乎只是一个调用函数的中间层。我找不到调用哪些函数,添加console.log(fireMethod.toString())我只看到

    function () { [native code] }
    

    所以我不是更进一步。我怎样才能找出实际花费的时间? 供参考:这是我的v8.log

    另外,我有点担心,docpad几乎只依赖于Benjamin Lupton编写的模块。为什么会这样?

2 个答案:

答案 0 :(得分:2)

经历了大约1周的冒险之后,我得出的结论是,Docpad不是为速度而制造的,而是为了处理复杂的网站。一些事实:

  • 即使是只有twitter bootstrap的全新docpad安装也需要12秒才能构建
  • 没有办法只重新生成源文件已更改的文件(依赖树),它总是重新生成所有内容
  • 阅读this之类的线程表明速度不在焦点

我的用例是为博客写文章,我有很多改变文字,看看它的外观和#34;循环。我已经切换到了Hexo,速度要快得多:

  • hexo server在2.5秒后开始。启用livereload时,当我更改博客帖子时,broswer选项卡会重新加载页面并以大约1s显示新内容
  • 使用hexo cleanhexo generate重新生成所有文件只需5秒。

这是相同的设置(lesscoffeescript等等。)我用于DocPad,DocPad需要运行38秒。

除了速度hexo给了我

  • 主题:hexo很好地区分主题和内容(DocPad混合了两者)。目前大约有30 hexo themes to choose from
  • 实施更多内容:支持hexo <! --more -->开箱即用
  • 部署到github页面是开箱即用的
  • 架构对我来说更容易理解,编写小部件是一种幸福,文档也看起来更好

总的来说,看起来hexo更适合博客,而docpad更适合更复杂的网站。 Hexo看起来真的起飞了,每周在github上获得大约30颗星,而docpad每周只能获得10颗星。

答案 1 :(得分:0)

你可以使用meta

  

standalone:true

在处理文件时

。如果更新它,此元将仅重新生成此文件。完成后删除meta。