如何在 HHVM 中创建静态文件缓存

How to create a static file cache in HHVM

我们是 运行 HHVM 上 Repo 权威模式的网站。

我可以用 hhvm --hphp -thhbc 编译代码文件。 但是,似乎还有一个功能可以使用 -tfilecache 创建静态文件缓存,它将用于提供静态文件,但我无法让它工作。关于此功能的文档很少,我在 Google.

上找不到任何内容

我正在生成这样的文件列表:

find . -type f -not \( -name '*.php' -or -name '*.phtml' \) >/tmp/staticfiles

并尝试像这样生成缓存:

hhvm --hphp -t filecache -v AllVolatile=true --input-list /tmp/staticfiles -l3

(为详细日志记录添加了-l3)

结果总是:

running hphp...
creating temporary directory /tmp/hphp_H98a3V ...
parsing inputs...
parsing inputs took 0'00" (145 us) wall time

Assertion failure: /tmp/tmp.jRkkBo6M6b/hphp/compiler/analysis/analysis_result.cpp:79: virtual HPHP::AnalysisResult::~AnalysisResult(): assertion `!m_finish' failed.


Core dumped: Aborted
Stack trace in /tmp/stacktrace.1767.log
hphp failed
running hphp took 0'01" (1257721 us) wall time

堆栈跟踪文件中没有任何内容。

我试过只使用列表中的一两个文件,结果相同。在 HHVM 1.14.2 和 1.14.4,RHEL 7.2 上有经验。

这是一个错误还是我做错了什么?

我开了一个 bug 他们很快就回来了

You probably want to create the repo and the filecache at the same time. You can pass --file-cache /where/to/create/cache to the command you use for building the hhbc repo.

效果很好,我不知道你可以同时做这两个。

他们确实留下了这个漏洞,所以看起来它也应该独立工作。不过这个方法对我来说够用了(其实更好)