问题标签 [ccache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ccache - 检查 ccache 调用是否是缓存命中
作为构建过程的一部分,我想获取有关构建时间以及 ccache 是否在缓存中找到该项目的统计信息。我知道在ccache -s
哪里可以比较以前和当前的缓存命中计数。
但是,如果我有数百个编译线程并行运行,则统计数据不会告诉我是哪个文件导致了命中。
的返回码ccache
是编译器的返回码。有什么办法可以让 ccache 告诉我它是否成功?
ccache - ccache - 所有文件都是“无输入文件”
我正在使用我这样编译的 ccache 版本 3.7.4: ccache compiler [compiler options]但它似乎不起作用
唯一增加的字段是每个编译文件的“无输入文件”,来自 ccache 帮助页面,这意味着没有为编译器指定输入文件,这对我来说并不清楚。
ccache.conf 看起来像这样:
我错过了什么?
编辑:发现我可以通过设置 CCACHE_LOGFILE 看到更多的调试。现在我看到每个文件的调试行:
运行:stat File.cpp 文件:`File.cpp' 大小:14924 块:32 IO 块:1048576常规文件
embedded - 对非 gcc 工具的 CCACHE 和 DISTCC 支持?
我们正在寻找方法来加快我们的项目的编译速度,该项目使用 Keil、Xtensa 和可能的另一个非 gcc 编译器工具,用于芯片中的第 3 种内核。
我一直在搜索“keil ccache”或“交叉编译 ccache”,但一切(大部分)都归结为 gcc 和一些非常古老的项目,这些项目涉及在 ccache 的一个分支中支持其他工具链。
有谁知道这是一个愚蠢的差事,还是它无处不在以至于没有理由问这个问题?我的 google-fu 让我失望了,所以我只是没有找到关于我需要做些什么才能使其与非 gcc 工具一起工作的信息。
FWIW,GCC 是不可能的,因为它不支持我们的自定义 Xtensa 或 DSP 处理器。
如果不清楚我在问什么:CCACHE 和/或 DISTCC 是否支持非 gcc 工具集。如果是这样,我需要做些什么特别的事情还是应该“正常工作”?
android-source - 如何使用ccache来加速aosp的编译?
我在这里找到了 ccache aosp repo https://android.googlesource.com/toolchain/ccache/,但我不知道如何在 aosp v10 上使用 ccache,官方 aosp 网站没有任何关于 ccache 的信息了,只有多个构建。ccache 是否仍然适用于最新版本的 aosp ?
build - 我可以用 CCache 加速 IWYU 吗?
我正在开发一个项目,它使用 CMake 生成构建系统,使用 CCache 加快构建速度(通过设置CMAKE_CXX_COMPILER_LAUNCHER
),并包含您使用的内容来整理所需的标头(通过设置CMAKE_CXX_INCLUDE_WHAT_YOU_USE
)。
IWYU 需要花费相当长的时间来分析所有项目文件,这使得构建过程变得不必要地冗长。
有没有办法使用 CCache 缓存其结果?
如果有任何建议,IWYU 会返回退出代码 1,如果没有建议则返回 2,因此我尝试创建一个返回 0 而不是 2 的包装器,因为 CCache 需要它来缓存结果,但这并没有太大帮助。现在它抱怨没有创建输出文件。这是正确的方法吗?
r - 将 ccache 与 Stan 模型一起使用
我发现编译 Stan 模型有点慢,而且我经常重新编译相同的模型“以避免崩溃 R 会话”。看起来 ccache 在这里是一个很好的解决方案——我可以缓存编译结果,R 可以根据需要重新加载编译的对象。但是,ccache 无法返回缓存的结果,因为rstan::stan_model
它正在创建具有不同名称的临时 C++ 文件。有没有办法stan_model
使用相同的 C++ 文件名?还是有更好的方法来缓存编译?rstan 代码中的此注释使缓存似乎成为可能。
系统详细信息:Ubuntu、R 4.0、gcc 9.3.0、ccache 3.7.7。ccache 有它的默认设置,除了hash_dir=false
和compression=true
。
脚注:为什么不使用auto_write=TRUE
?可能我做错了,但在我运行的模型中,这并不能阻止重新编译。
android - ccache 以只读方式失败
我在 ubuntu 机器上构建 android 10。来源是自定义的,而不是专门针对谷歌的。源代码是硬编码的,用于预构建的 clang 以使用 ccache。我已经安装了 ccache 并将这些变量添加到 bashrc:
_CCACHE_EXEC=/usr/bin/ccache
_CCACHE_EXEC -M 50G
导出 USE_CCACHE=1
chmod 和 chown ~/.ccache 在构建过程中的结果是一样的,实际的错误是:
ccache:错误:无法创建目录 /home/brandonabandon/.ccache/tmp:只读文件系统。
我无法联系来源的所有者。我试图禁用 ccache,由于最近的硬编码 ccache 提交,这会导致进一步的错误。我以前可以建造得很好。我被难住了一个星期。有任何想法吗?
linux - ccache 未能在 /var/cache/ccache/ 中创建临时文件,权限被拒绝。在 Gentoo Linux 上
安装emerge软件时总是出现这个问题。我的 ccache 目录挂载在 /dev/sda2 上,这是 btrfs 中的主分区。已设置相应的目录权限。/etc/fstab 我在下面发布。
这是错误消息之一:
ccache 配置和状态:
/var/cache/ccache 的一些信息:
fstab:
使.conf:
caching - 如何在奇点构建中利用主机缓存?
我正在寻找优化奇点 HPC 容器构建时间的方法。我知道我可以通过逐层构建它们来节省一些时间。但是,仍然有优化的空间。
我感兴趣的是在主机系统上使用/缓存任何有意义的东西。
- CCache 用于 C++ 构建工件缓存
- git repo 克隆
- APT 软件包下载
我做了一些实验,但没有成功。
到目前为止我发现了什么:
缓存
我在容器中安装 ccache 并指示构建系统使用它。我知道因为我singularity build
使用 sudo 运行,所以缓存会在/root
. 但是运行构建后,/root/.ccache
是空的。我验证了生成的 CMake 构建文件,它们肯定使用 ccache。
我什至创建了一个包含%post
但是测试文件没有出现在主机系统的任何地方(不在/root
我用户的家中也没有出现)。构建步骤是否将容器支持的目录挂载到/root
而不是主机的根目录?
是否需要做更多的事情来利用 ccache?
吉特
人们建议运行例如 git-cache-http-server ( https://stackoverflow.com/a/43643622/1076564 ) 并使用git config --global url."http://gitcache:1234/".insteadOf https://
.
由于奇异性可以读取主机文件系统的部分内容,我认为甚至有一种方法可以让它在没有代理程序的情况下工作。但是,如果主机 git repos 不在$HOME
or/tmp
中,那么在构建过程中,singularity 如何访问它们?singularity build
没有--bind
标志来指定其他挂载目录。并且使用%files
配方中的部分听起来效率低下 - 每次运行构建时都复制所有内容。
易于
人们建议使用例如 squid-deb-proxy ( https://gist.github.com/dergachev/8441335 )。同样,由于奇异性能够读取主机文件系统文件,我想只使用主机的/var/cache/apt
. 但/var
默认情况下不会挂载到容器中。所以再次出现同样的问题 - 我如何/var/cache/apt
在容器构建期间挂载。总的来说这是个好主意吗?考虑到主机和容器都基于相同版本的 Ubuntu 和架构,它不会损坏主机的 APT 缓存吗?
还是奇点本身做了一些聪明的 APT 缓存?我刚刚注意到它在 25 秒内下载了 420 MB 的包,这在我的连接上是可能的,但考虑到 ubuntu 镜像的标准速度,这不太可能。
编辑:我在奇异回购上创建了一个问题:https ://github.com/hpcng/singularity/issues/5352 。
c++ - 如何使用 `ccache -s` 显示不同 CCACHE_DIR 的命中率
当我使用ccache -s
时,我会变成这样。
但是当我CCACHE_DIR
为不同的 C++ 项目设置不同的环境时,我怎样才能得到我的CCACHE_DIR
统计数据呢?有没有参数可以做到这一点?