Skip to content

build: キャッシュの量を減らすため不要なファイルを削除#97

Open
qryxip wants to merge 3 commits intoVOICEVOX:mainfrom
qryxip:pr/build-remove-files-to-save-cache-usage
Open

build: キャッシュの量を減らすため不要なファイルを削除#97
qryxip wants to merge 3 commits intoVOICEVOX:mainfrom
qryxip:pr/build-remove-files-to-save-cache-usage

Conversation

@qryxip
Copy link
Member

@qryxip qryxip commented Feb 11, 2026

内容

WebGPU版ビルドが入った #90 以降キャッシュの合計が10GBを超過してしまい、キャッシュ機構があまり機能しなくなってしまった問題があったのでそれに対処する。

その他

このPRを作った段階で、以下の状態までは削減できている。

gh cache -R qryxip/onnxruntime-builder list --json sizeInBytes -q 'add(map(.sizeInBytes)[])' \
    | numfmt --to=iec
4.1G
gh cache -R qryxip/onnxruntime-builder list -S size_in_bytes --json key,sizeInBytes \
    -q '.[] | select(.key | startswith("onnxruntime-")) | [(.key | split("-v1.23.2")[0]), .sizeInBytes] | @tsv' \
    | teip -f 2 -- numfmt --to=iec \
    | column -ts $'\t'
onnxruntime-win-x64-dml         1016M
onnxruntime-win-x64-webgpu      603M
onnxruntime-win-x64-cuda        560M
onnxruntime-win-x64             548M
onnxruntime-win-x86             511M
onnxruntime-ios-sim-x86_64      164M
onnxruntime-linux-x64-cuda      70M
onnxruntime-linux-x64-webgpu    69M
onnxruntime-linux-arm64-webgpu  64M
onnxruntime-linux-x64           52M
onnxruntime-android-x64         51M
onnxruntime-android-arm64       50M
onnxruntime-osx-x86_64-webgpu   49M
onnxruntime-linux-arm64         47M
onnxruntime-ios-sim-arm64       46M
onnxruntime-ios-arm64           46M
onnxruntime-linux-armhf         46M
onnxruntime-osx-arm64-webgpu    44M
onnxruntime-osx-x86_64          39M
onnxruntime-osx-arm64           35M

@qryxip
Copy link
Member Author

qryxip commented Feb 11, 2026

@sevenc-nanashi 何かご意見があれば大変助かります。

(とりあえずWindowsにbuild/Packagesという大きめなやつが見えるので、これも対象にしようかなと思ってます)

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

一般的な意見だけ書きます!
こうしてほしいというより、こういう観点があるよというニュアンスです。

知っていると思いますが、基本的にキャッシュは危ないんですよね。
スコープをまたいで未来方向全部にグローバルな情報になるので。
キャッシュ書き換えるコードも、将来これを忘れてバグが生まれちゃうはず。
なので無くて良いなら無い方が理想ではある。

最高の案は思いついてないのですが、案まで:

目的はたぶん「失敗したものの再挑戦をすぐ行えること」ですよね。
なのでfailしたときにだけキャッシュをアップロードするのはどうでしょう。
で、引数指定でどのリビルドをやり直すか指定できるようにするとか。
まあコード変更が大変ですが・・・。

あるいはビルド産物からリリースへの加工はOS非依存でしょうか。
であればcacheじゃなくてartifactにアップロードして、ビルド産物の加工はローカルPCで別スクリプト書いて実行し、そのスクリプトをリポジトリにcommitしてメンテするとかもありそう。


とはいえ諸刃の剣だとしてもキャッシュが便利だというのは理解できるので、全然強い意見じゃないです!
キャッシュやキャッシュ加工は危ないよという一般論と、別アイデアの助けになればくらいの気持ちでコメントしました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants