问题标签 [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.
android - ccache会影响后续android构建中的错误吗
我真的不明白(我已经阅读但我还不确定)ccache 是如何工作的,所以我的问题可能很愚蠢,但我想知道在调试阶段使用它是否可能是一个问题而不是帮助。我会更好地解释:假设从一个干净的 ccache 开始,我构建了一个 android ROM,构建顺利并且 ccache 被填充。然后我启动 ROM,我注意到有些东西没有按预期工作,我不知道,为了这个例子,假设 WiFi 没有连接。我回到我的代码并修改了一些应该修复它的东西,但显然我必须对其进行测试,所以我再次构建(使用 ccache,所以构建不需要太多)。
我的问题是,在我试图解决问题的后续构建中使用 ccache 是否可能会使我的修改毫无价值,因此最好进行完全干净的构建,或者完全不影响结果?
c++ - ccache 如何提高构建速度?
我正在使用 cmake 设置我的项目,当我更改项目中的文件时,我发现我的 cmake 知道只重新编译更改的文件,然后将所有内容重新链接在一起以获得最终的可执行文件/lib。
然后我通读了有关 ccache 的文档,我不明白的是:ccache 的方法(使用哈希值检查文件是否已更改并需要重新编译)与 cmake 使用的默认方法(或那里)有什么区别可能是其他东西,而不是 cmake 检查文件更新,但你知道我的意思)。可能 PCH 部分有所不同,但是 cmake 3.18 现在带有 PCH 支持,那么,这是否意味着 ccache 在 PCH 部分提供的好处不再是唯一的?
c++ - GitHub Actions CI 中的 Ccache 命中率 0.00 %
在我们的 C++ 项目中,我们设法设置GitHub Actions使用ccache构建我们的源代码。
它在 Linux 上运行良好,感谢ccache
,构建在不到 5 分钟的时间内成功。
不幸的是,当尝试在 macOS 上构建时,ccache
似乎不起作用,给出:
因此,macOS 构建大约需要 40 分钟才能完成。
构建示例:https ://github.com/azerothcore/azerothcore-wotlk/runs/1018358261
这是定义操作的地方:https ://github.com/azerothcore/azerothcore-wotlk/blob/master/.github/workflows/core_build.yml
整个项目的源代码公开在:https ://github.com/azerothcore/azerothcore-wotlk
因此,尽管我尝试以与那些macOS
相同的方式设置构建ubuntu-*
,但我未能让 ccache 正常工作,我不知道为什么。
如何使ccache
工作macOS
太?
c - 如果编译器绝对路径在makefile中被硬编码,我应该如何使用ccache?
修改构建我们的代码的复杂的 makefile 嵌套对我来说不是一个选项,并且在不同的地方它们构建了非常特定的编译器的绝对路径,例如/home/arm2gcc/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi-gcc
这使得很难将 ccache 用作前缀或将其放在路径中的首位。
所以我想知道将我个人机器上的编译器安装移动到例如/home/arm2gcc-real
并将假脚本放入/home/arm2gcc
重定向到真正的编译器。
谁能建议如何做到这一点?或者,还有更好的方法?
c++ - Qt、QML 和 C++:提高编译速度的技巧
我是一名 Qt 开发人员。我有一个非常快的 Ryzen 3900X,我正在寻找加快日常工作的技巧(在 linux 中构建速度更快)
这是一个示例项目:
- 完全重建 24 核:经过时间:00:38。
- 修改 main.cpp:经过时间:00:02。
- 修改 main.qml:经过时间:00:05。
现在我正在使用这些选项显着提高编译速度(在项目 .pro 中):
(您可以使用 CONFIG+=qtquickcompiler 或始终在发行版中构建。)
我得到:
- 完全重建 24 核:经过时间:00:05。
- 修改 main.cpp:经过时间:00:01。
- 修改 main.qml:经过时间:00:01。
现在它真的非常快,我可以在 1 秒内修改 QML 文件、构建和执行。
更多提高编译速度的想法?
在 windows + VS2019 中有更好的编译时间的想法吗?Qmake 构建系统在 win32 中似乎很慢
对macos有什么想法吗?(我没有在mac os上尝试过ccache和gold linker)
cmake - GitHub Actions CI 中缓存的命中率 0.00 %
我有一个虚拟 C++ 项目,我有以下 github 操作配置:
我正在ccache
通过添加/删除库进行测试CMakeLists.txt
,但每次ccache
命中率为 0%
从中恢复缓存的上一个作业有一个输出:
我需要做任何特定的事情来保存特定于 cmake 的缓存吗?
jenkins - 詹金斯 + Kubernetes + ccache
我们正在考虑将 Jenkins 迁移到 Kubernetes (GKE) 并使用 Jenkins Kubernetes 插件在 pod 中运行作业。但是,我们的构建基础设施使用 ccache 来优化构建速度,并且我们将 ccache 文件保存在 jenkins 代理上(每个构建都会读取和写入每个代理上的本地 ccache 文件夹)。
据我了解,k8s 中的 Jenkins 代理 pod 是短暂的,这意味着它们仅供一次性使用。我正在努力了解 ccache 是如何工作的。这是我的想法:
- 在 pod 模板中使用 hostpath 卷让代理 pod 在节点上挂载路径。恐怕这行不通,因为基于 GKE 文档 hostpath 不允许 ReadWriteMany,这意味着多个 pod 将无法同时写入 ccache 挂载。
- 使用基于 NFS 的卷 - 我知道它不会很好地工作,因为它会很慢并且会出现锁定问题。
- 以某种方式配置带有“podRetention”和“idleMinutes”选项的 pod 模板,以便重新使用 Pod。我认为这是可行的,但 IMO 这违背了使用 Kubernetes 的目的。
- 使用 StateFull Jenkins 代理——我再次认为这是可行的,但违背了使用 Kubernetes 的目的。
我发现https://issues.jenkins.io/browse/JENKINS-42422可能是相关的,但我认为没有解决方案。
关于如何实施的任何其他想法?不能使用 ccache 对我们来说是一个交易破坏者,因为与静态代理相比,它会使构建周转时间变得更糟。
ccache - 如何使 ccache 排除检查特定文件
我使用cmake构建了一个c ++项目,但是当我将git分支切换回来时,ccache没有命中。我如何避免重新编译,因为当前代码与以前完全相同。
cmake - CMake install very slow, but much faster with ccache
So I found that my build is very slow with CMake when I do install. One package in particular is taking ~1:20 minutes to build and ~1:40 to install.
It's not installing terrabytes of data, and installation is just moving some files around, so I was wondering why it's so slow.
Now I found that if I build with ccache
, I got faster build times even with a cold cache.
Now I looked at the install times, and the package went down to ~40 seconds install time. Still a lot considering CMake is only copying ~50MB, but considerably faster than before.
How can this be? Is there some kind of contention on files that is resolved with ccache?
c++ - 为什么 ccache 编译器调用失败?
我在 cmake 上使用启动器进行了以下 clang 调用ccache
:
clang="clang.sh"
将所有内容转发到的变量/usr/local/opt/llvm@12/bin/clang++
。
这可以工作并编译。但是,当我在上面的调用中替换clang=/usr/local/opt/llvm@12/bin/clang++
时,我得到一个非常奇怪的编译器错误:
这是为什么??这没有任何意义。