2

あるワークスペースを使用して構築された ccache を共有して、別のワークスペースで使用できるようにしたいと考えています。これにより、ccache データの 1 つのコピーが同一のソース コードのコンパイルに使用されます。

例: 1) ワークスペース (home/user/source_code1) を作成しました。2)サーバーからコードを同期しました。3) USE_CCACHE=1 でコードをコンパイル

上記は私のccacheを構築します。今、私は次のことを行います

ケース 1: 1) ワークスペース (home/user/source_code2) を作成しました。2) サーバーからここで同一のソース コードを同期しました。3) 以前のワークスペースで行ったのと同じコンパイルを行いました。

ケース 2: 1) ワークスペース home/user/source_code1 を削除します。2) 以前のワークスペース (home/user/source_code1) を再作成します。2) サーバーからコードを再同期しました。3) USE_CCACHE=1 でコードをコンパイル

source_code2 のコンパイルで source_code1 からビルドされた ccache を使用したいのですが、同じワークスペースを削除して再作成するときは、既にビルドされている ccache でコンパイルを行う必要があります。同じことを達成するための指針は大歓迎です!

上記の両方のケースで現在見られる結果は、ccache がビルドされているにもかかわらず、使用されていないか、ccache にヒットがなく、新しいワークスペースが使用されるたびに構築され続けます。 -以前のソース コード (home/user/source_code1) を削除せずに同じワークスペースでコンパイルすると、ccache コンパイルがジャンプし、ビルド時間の短縮に役立つヒットが発生します。

新しいワークスペースが使用されるたびに ccache ヒットが表示されないのはなぜですか?

「キャッシュ ヒット (直接) やキャッシュ ヒット (前処理)」ではなく、常に「ccache ミス」をインクリメントします。また、「キャッシュ ヒット (ダイレクト)」は常に 0 です。

以下の変数を設定しました。

CCACHE_BASEDIR=/home/user
USE_CCACHE=1
CCACHE_DIR=/home/user/ccache
CCACHE_SLOPPINESS=time_macros,file_macro

ここで何か不足している場合はお知らせください。

4

1 に答える 1

1

ccache を ver に置き換える必要があるかもしれません。3.x 以上。
私が知っているように、Android ソース ツリーに含まれている ccache は ver. 2.4.
そしてCCACHE_BASEDIR、ccache 3.x で動作していました。以下のリンクを参照できます。

CCACHE_BASEDIR を設定してツリー間でオブジェクト ファイルを共有する

Andorid ビルド スクリプトは、システムにインストールされたものではなく、ビルド済みのツールを使用します。

于 2015-12-23T02:14:24.977 に答える