Closed hangingman closed 1 year ago
fix #68
ccache とは C, C++ のビルド高速化ツール 初回は多少ビルド時間が長くなるが、2回目以降は劇的に早くなる
キャッシュするタイミングがいつなのか、キャッシュ破棄されるタイミングがいつなのか。わかってないとハマりそう。
このツールはコンパイラがソースコードをコンパイルする際の処理に割り込み、コンパイル時に固有であるべき各種データのハッシュ値を生成する。この付加的な処理により、概ね1度目のコンパイルはキャッシュを実行しない場合に比べ、コンパイルに時間がかかる。2度目以降のコンパイルでは再度ハッシュを生成し、その値がキャッシュデータのものと一致するかチェックする。一致すればccacheはコンパイラにコンパイルを指示する代わりにキャッシュされたデータを書き出す。一致しなければ、コンパイル処理はコンパイラに渡される。
https://ja.wikipedia.org/wiki/Ccache
ccache自体はソースコードの変更を検知しませんが、ビルドシステムと組み合わせることで、ソースコードの変更を適切に処理し、キャッシュの利用を最適化することができます。
ChatGPT
In a nutshell, the .ccache folder is configured in the runner path and the folder is persisted and reloaded using cache. For more details see: https://docs.github.com/en/free-pro-team@latest/actions/guides/caching-dependencies-to-speed-up-workflows.
➔ ソースコードに変更があればハッシュ値が変わり、ちゃんとコンパイルされると思われる。ソースコードに変化がない場合のコンパイル時間が短縮されそうでいいね。
fix #68
やったこと
動作確認
備考
キャッシュするタイミングがいつなのか、キャッシュ破棄されるタイミングがいつなのか。わかってないとハマりそう。
ccache自体の仕組み
https://ja.wikipedia.org/wiki/Ccache
ChatGPT
ccache actionの仕組み
結論
➔ ソースコードに変更があればハッシュ値が変わり、ちゃんとコンパイルされると思われる。ソースコードに変化がない場合のコンパイル時間が短縮されそうでいいね。