periphery icon indicating copy to clipboard operation
periphery copied to clipboard

Cache folder (`Caches/com.github.peripheryapp`) very large (~30 GB)

Open henriksquareone opened this issue 8 months ago • 2 comments

Hi team,

I've recently found out about Periphery and only used it a handful of times manually to clean up our project. It's really powerful, I love it!

But when cleaning up my machine just now, I've noticed that the Periphery cache folder at ~/Library/Caches/com.github.peripheryapp has grown to around 29.8 GB on my machine, which seems unusually large for a cache directory (it's by orders of magnitude the largest for me).

Details:

  • Periphery version: 3.0.2
  • macOS version: 15.4.1 (24E263)
  • Projects used on: 2 both ~50k lines of code
com.github.peripheryapp % du -sh ~/Library/Caches/com.github.peripheryapp/*

7.1G	/Users/thisisthefoxe/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8
8.0G	/Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7
6.9G	/Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9
6.5G	/Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a

I tried cleaning it up but it ran into a few errors:

com.github.peripheryapp % periphery clear-cache
error: Shell command 'rm -rf /Users/***/Library/Caches/com.github.peripheryapp' returned exit status '1':
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/SourcePackages/artifacts/grpc-binary/grpc/grpc.xcframework: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/SourcePackages/artifacts/grpc-binary/grpc: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/SourcePackages/artifacts/grpc-binary: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/SourcePackages/artifacts: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/SourcePackages: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/Build/Intermediates.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a/Build: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-c41b896a-c41b896a: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/Index.noindex/DataStore/v5: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/Index.noindex/DataStore: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/Index.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/SourcePackages/artifacts: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/SourcePackages: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/ModuleCache.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/Build/Intermediates.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7/Build: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-1e015fb7: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8/SourcePackages/artifacts/grpc-binary/grpcpp: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8/SourcePackages/artifacts/grpc-binary: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8/SourcePackages/artifacts: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8/SourcePackages: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8/ModuleCache.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-186df8d8-186df8d8: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/SourcePackages/repositories/swift-syntax-463e60c9/refs: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/SourcePackages/repositories/swift-syntax-463e60c9: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/SourcePackages/repositories: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/SourcePackages: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/Build/Intermediates.noindex: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9/Build: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp/DerivedData-44b7feb4-b0c0bbfa-5a64e3d9: Directory not empty
rm: /Users/***/Library/Caches/com.github.peripheryapp: Directory not empty

Typically, I’d expect a cache folder to stay under a few hundred MB or at most a few GB, with some form of cleanup or expiration. I'm not entirely sure about how you guys handle cache at the moment but thought I'd bring it up in case anyone else has similar issues..

Thanks for your help and this awesome project!

henriksquareone avatar May 01 '25 21:05 henriksquareone

Periphery does not automatically manage the cache folder, it's up to you to clear the cache as needed, just like with DerivedData. It's strange that the removal command failed. Are you able to remove it manually?

ileitch avatar May 03 '25 13:05 ileitch

Periphery does not automatically manage the cache folder

Thanks for clarifying. To be fair, I do feel like this would be a nice, helpful feature, maybe like a configuration to automatically clear the cache after a while or limit the total size or something similar.

Are you able to remove it manually?

Yes.

henriksquareone avatar May 04 '25 21:05 henriksquareone