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

han*_*ast 6 node.js docpad

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

现在我的问题是"docpad run"运行需要58秒,而livereload运行需要23秒.我写了这个样板的作者,他说他也有同样的东西,但这并不会让他太烦恼.

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

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

更新缺少的链接是我需要启动CPU profileron nodetime:

  1. 配置nodetime,在此处描述
  2. CPU profiler节点时间开始
  3. 启动docpad: docpad --profile run

不幸的是,在我的情况下,输出并没有多大帮助.在我的运行结果表明, 时间81%是花费在ambi.js,这似乎只是它调用功能的中间层.我无法找出调用哪些函数,添加console.log(fireMethod.toString())我只看到

function () { [native code] }
Run Code Online (Sandbox Code Playgroud)

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

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

han*_*ast 2

经过大约 1 周的探索,我得出的结论是 Docpad 不是为了速度而设计的,它是为了处理复杂的网站而设计的。一些事实:

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

我的用例是为博客撰写文章,并且我有很多“更改文本并查看其外观”循环。我已经改用 Hexo,速度要快得多:

  • hexo server2.5 秒后开始。打开livereload后,当我更改博客文章时,浏览器选项卡会重新加载页面并在大约 1 秒内显示新内容
  • hexo clean使用和重新生成所有文件hexo generate仅需 5 秒。

这与我对 DocPad 的设置相同(使用less、等),其中 DocPad 需要 38 秒才能运行。coffeescript

除了速度之外,hexo 还给了我

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

总体而言,看起来 hexo 更适合博客,而 docpad 更适合更复杂的网站。Hexo 看起来真的很受欢迎,每周在 github 上获得大约 30 颗星,而 docpad 每周只获得大约 10 颗星。