emscripten - 预热 emscripten 缓存以加快构建速度
问题描述
全新安装的 emscripten 编译程序会慢得多,因为它需要构建系统库的缓存。它将输出如下行:
cache:INFO: generating system library: libc.a... (this will be cached in "/emsdk_portable/.data/cache/wasm/libc.a" for subsequent builds)
有一个标志(https://emscripten.org/docs/tools_reference/emcc.html),--clear-cache
但我想做相反的事情。我正在寻找一个命令来填充所有系统库的 emscripten 缓存。我正在寻找这样做,以便我可以在 docker 中捕获输出,然后将其用于更快的 CI 构建。
有人知道我可以这样做吗?
解决方案
更新:
该embuilder.py
工具负责构建 emscripten 库。您可以运行它以使用系统库来预热缓存:
embuilder.py build MINIMAL
或者,如果您正在使用emscripten/emsdk
Docker 映像,并且想要将缓存内容存储在其中/my/own/cache
以保持持久性,您可以运行:
docker run --rm \
-v /my/own/cache:/emsdk/upstream/emscripten/cache \
emscripten/emsdk \
/emsdk/upstream/emscripten/embuilder.py build MINIMAL
您可以通过查看源代码或传递--help
标志来找到有关该命令的更多详细信息。
原始答案:
如果您正在使用emscripten/emsdk
Docker 映像并希望缓存在编译过程中保持不变,那么您可以使用绑定/卷挂载覆盖容器的缓存文件夹:
cd /my/project/folder
docker run --rm \
-v $(pwd):/src \
-v $(pwd)/my_emscripten_cache:/emsdk/upstream/emscripten/cache \
emscripten/emsdk \
make
第一次运行它显然会很慢,但随后的运行应该能够利用缓存并运行得更快。
推荐阅读
- python - HEIC 到 JPEG 的元数据转换
- angular - Nativescript 'Image' 不是已知元素
- python - 熊猫一旦在列中满足条件删除 n 行然后转到下一部分
- python - 在python中制作多个数据帧的列表以在迭代中使用
- python - Python 开源视频播放器动态播放连续视频流
- ios - 地图视图在方向更改时崩溃
- broadcast - 为 TPOT 运行数据集时出现 tpot 错误消息
- npm - 找出 npm dedupe 无限挂起的原因
- node.js - 在异步应用程序中定义解析/拒绝的正确方法是什么
- javascript - 根据逾期天数发出警报的基本 Netsuite 客户端脚本