gpt4 book ai didi

ccache - '缓存'配置

转载 作者:行者123 更新时间:2023-12-04 02:23:55 25 4
gpt4 key购买 nike

我有一个关于缓存配置的问题。在我们的开发环境中,我们有数百个使用绝对路径构建对象的 make 文件。

我想加快进程并使用ccache。不幸的是,当从不同位置编译时,我可以看到缓存未命中。下面是一个例子源文件放在不同目录中的简化情况。我必须如何设置 ccache 以获得适当的命中率?

我尝试设置 CCACHE_BASEDIR 变量但没有成功:

developer@crunchbang:~$ pwd
/home/developer
developer@crunchbang:~$ ccache -s
cache directory /home/developer/.ccache
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 0
files in cache 0
cache size 0 Kbytes
max cache size 1.0 Gbytes
developer@crunchbang:~$ ccache g++ -c /home/developer/unique_name1/contest.cpp
developer@crunchbang:~$ ccache g++ -c /home/developer/unique_name2/contest.cpp
developer@crunchbang:~$ ccache -s
cache directory /home/developer/.ccache
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 2
files in cache 4
cache size 16 Kbytes
max cache size 1.0 Gbytes
developer@crunchbang:~$ ccache g++ -c /home/developer/unique_name1/contest.cpp
developer@crunchbang:~$ ccache g++ -c /home/developer/unique_name2/contest.cpp
developer@crunchbang:~$ ccache -s
cache directory /home/developer/.ccache
cache hit (direct) 2
cache hit (preprocessed) 0
cache miss 2
files in cache 4
cache size 16 Kbytes
max cache size 1.0 Gbytes
developer@crunchbang:~$ ccache --version
ccache version 3.1.7

Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2011 Joel Rosdahl

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.

最佳答案

您是否考虑过更改 Makefile 以使用相对路径?您可以使用提到的技术 in this post无需进行太多更改即可执行此操作。

另外请注意:CCACHE_BASEDIR 生成相对于当前工作目录的路径(可能可以在联机帮助页中更清楚地指定一些内容)。这意味着您的 2 个编译命令将导致(使用 CCACHE_BASEDIR=/home/developer):

developer@crunchbang:~$ ccache g++ -c unique_name1/contest.cpp
developer@crunchbang:~$ ccache g++ -c unique_name2/contest.cpp

换句话说:它们仍然会有所不同。只有在 unique_name 目录中编译才能解决此问题。例如

developer@crunchbang:~$ cd /home/developer/unique_name1 && ccache g++ -c /home/developer/unique_name1/contest.cpp
developer@crunchbang:~$ cd /home/developer/unique_name2 && ccache g++ -c /home/developer/unique_name2/contest.cpp

将导致:

developer@crunchbang:~$ ccache g++ -c contest.cpp
developer@crunchbang:~$ ccache g++ -c contest.cpp

关于ccache - '缓存'配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com