当前位置: 首页 > news >正文

清理Go/Rust编译时产生的缓存

Go

Mac 1T的磁盘频频空间高级,发现是/Users/yourname/Library/Caches/go-build 目录占用了大量空间。

此目录保存来自 Go 构建系统的缓存构建工件。

如果目录太大,请运行go clean -cache

运行go clean -fuzzcache以删除模糊缓存。


当时直接手工清理了。

之后不多久,该目录又占据了50多G的空间

du -sh */ | sort -h


执行 go clean -cache

除了

  • go clean -cache

还有

  • go clean -fuzzcache 删除模糊缓存

  • go clean -modcache 删除mod的缓存



Rust

另外Rust也占用了大量空间(而且Rust不仅编译速度慢,编译出来的产物,debug模式下也相当大)

在构建 Rust 项目时,Rust 的包管理器 cargo 会在多个目录中生成缓存和构建产物。

1. cargo 会将下载的依赖项缓存到这个目录下,通常位于用户的主目录中:

~/.cargo

其中包括:

  • registry:下载的 crate 的源代码和元数据。
  • git:从 Git 仓库中获取的依赖项。

查看这个目录的大小:

du -sh ~/.cargo

清理:

使用 cargo 自带的清理命令来清理缓存:

cargo clean

该命令需要到具体的项目目录下执行

这个命令会删除当前项目的 target 目录中的所有构建产物。

如果你想要清理全局缓存和编译产物,可以直接删除 ~/.cargo 目录下的缓存:

rm -rf ~/.cargo/registry
rm -rf ~/.cargo/git

2. target 目录

每个 Rust 项目在构建时会在项目根目录下生成一个 target/ 目录,用于存储构建产物,包括编译后的二进制文件、依赖项的编译结果等。这个目录可能会占用大量空间,尤其是当有多个构建配置(如 debugrelease)时。

要查看某个项目的 target/ 目录的大小,运行:

du -sh /path/to/your/project/target

清理:

target/ 目录是 Rust 项目构建后的产物,通常可以安全地删除,特别是如果只是在本地开发时使用。

要删除项目中的 target 目录,进入项目根目录并运行:

rm -rf target

或者,如果你想批量清理多个项目中的 target 目录,可以在终端中使用 find 命令递归查找并删除 target 目录:

find /path/to/your/projects -type d -name target -exec rm -rf {} +

3. ~/.rustup 目录

Rust 工具链 (rustup) 也会占用一些空间,通常位于 ~/.rustup 目录下。这个目录存储了 Rust 工具链的版本、标准库和其他工具。

查看这个目录的大小:

du -sh ~/.rustup

清理:

rustup 也可能占用一些磁盘空间,尤其是当你安装了多个工具链或组件时。你可以查看当前安装的工具链:

rustup toolchain list

如果你发现了不再使用的工具链,可以卸载它们:

rustup toolchain uninstall <toolchain>

例如,卸载 nightly 版本:

rustup toolchain uninstall nightly

之前我已经手工把该目录下多达20G的文件都删了



cargo-cache 工具



推荐 使用 cargo-cache 工具查看和管理缓存

cargo-cache 是一个第三方工具,可以用来查看和清理 cargo 的缓存。可通过 cargo 安装这个工具:

cargo install cargo-cache

安装完成后,运行以下命令查看 cargo 缓存的详细信息:

cargo cache

输出显示的是 cargo 的缓存信息,包括 registrygittarget 目录的大小。

如果你想要清理缓存,也可以使用 cargo-cache

cargo cache --remove-dir all

这是一把梭哈,还可以通过子命令,清理特定类型的缓存,清理超过x天没有使用的缓存等。

详细命令:

cargo cache -help                         
cargo-cache 0.8.3
matthiaskrgr
Manage cargo cacheUSAGE:cargo cache [OPTIONS] [SUBCOMMAND]OPTIONS:-a, --autocleanRemoves crate source checkouts and git repo checkouts-e, --autoclean-expensiveAs --autoclean, but also recompresses git repositories-f, --fsckFsck git repositories-g, --gcRecompress git repositories (may take some time)-h, --helpPrint help information-i, --infoPrint information cache directories, what they are for and what can be safely deleted-k, --keep-duplicate-crates <N>Remove all but N versions of crate in the source archives directory-l, --list-dirsList all found directory paths-n, --dry-runDon't remove anything, just pretend-o, --remove-if-older-than <date>Removes items older than specified date: YYYY.MM.DD or HH:MM:SS-r, --remove-dir <dir1,dir2,dir3>Remove directories, accepted values: all,git-db,git-repos,registry-sources,registry-crate-cache,registry-index,registry-t, --top-cache-items <N>List the top N items taking most space in the cache-V, --versionPrint version information-y, --remove-if-younger-than <date>Removes items younger than the specified date: YYYY.MM.DD or HH:MM:SSSUBCOMMANDS:clean-unref    remove crates that are not referenced in a Cargo.toml from the cachehelp           Print this message or the help of the given subcommand(s)l              check local build cache (target) of a rust projectlocal          check local build cache (target) of a rust projectq              run a queryquery          run a queryr              query each package registry separatelyregistry       query each package registry separatelysc             gather stats on a local sccache cachesccache        gather stats on a local sccache cachetoolchain      print stats on installed toolchainstrim           trim old items from the cache until maximum cache size limit is reachedverify         verify crate sources



另:

cargo-cache 是一个第三方工具,关于如何自己写一个cargo xxx命令可参考 Cargo的自定义命令扩展功能

好处是方便快捷,坏处是很难区分该命令是官方提供还是来自第三方,是否有安全隐患。




另外当Mac磁盘不够用时,重点”关照“以下目录的一些文件:

  • ~/Library/Caches
  • ~/Library/Logs
  • ~/Library/Containers
  • ~/Library/Cookies

相关文章:

清理Go/Rust编译时产生的缓存

Go Mac 1T的磁盘频频空间高级&#xff0c;发现是/Users/yourname/Library/Caches/go-build 目录占用了大量空间。 此目录保存来自 Go 构建系统的缓存构建工件。 如果目录太大&#xff0c;请运行go clean -cache。 运行go clean -fuzzcache以删除模糊缓存。 当时直接手工清理了…...

【linux】 ls命令

ls 命令是 Linux 和 Unix 系统中用于列出目录内容的命令。它显示指定目录下的文件和子目录列表。如果不指定目录&#xff0c;ls 默认显示当前目录下的内容。 基本用法 ls [选项] [文件或目录...] 无选项&#xff1a;简单地列出当前目录下的文件和目录。文件或目录&#xff1…...

STM32的寄存器深度解析

目录 一、STM32 寄存器概述 二、寄存器的定义与作用 三、寄存器分类 1.内核寄存器 2.外设寄存器 四、重要寄存器详解 1.GPIO 相关寄存器 2.定时器相关寄存器 3.中断相关寄存器 4.RCC 相关寄存器 五、寄存器操作方法 1.直接操作寄存器 2.使用库函数操作寄存器 六…...

win11 运行vmware workstation 虚拟机很卡,解决办法

本身win11的hyper V和vmare workstation有兼容性问题&#xff0c;正常来说&#xff0c;不能二者共存 需要在win11上流畅运行vmare虚拟机&#xff0c;需要在win11用管理员权限打开power shell 然后在里面运行命令: bcdedit /set hypervisorlaunchtype off powercfg /powerthr…...

C语言 | Leetcode C语言题解之第404题左叶子之和

题目&#xff1a; 题解&#xff1a; bool isLeafNode(struct TreeNode *node) {return !node->left && !node->right; }int sumOfLeftLeaves(struct TreeNode *root) {if (!root) {return 0;}struct TreeNode **q malloc(sizeof(struct TreeNode *) * 2001);in…...

jeesite支持db2数据库初始化sql

点击下载&#xff1a;jeesite5.8.1-db2-sql.rar 提取码: yqev...

微信小程序页面制作——婚礼邀请函(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

股票量化接口api,国内股票期权怎么交易

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…...

Spring解决循环依赖的原理

通过将自己注入自己&#xff0c;使用代理对象调用add方法解决了事务失效问题&#xff0c;但是这样不会产生循环依赖吗&#xff1f; 在OrdersCreateServiceImpl 中注入的是OrdersCreateServiceImpl 的代理对象&#xff0c;并不是OrdersCreateServiceImpl 本身实例&#xff0c;构…...

Openal o1初探

9 月 13 日&#xff0c;OpenAI 正式公开一系列全新 AI 大模型&#xff0c;传说的“草莓”终于上线&#xff0c;但是正式命名不叫“草莓”&#xff0c;而是o1。 一、为什么叫o1 为什么取名叫o1&#xff0c;OpenAI是这么说的&#xff1a; For complex reasoning tasks this is…...

基于python+django+vue的学生成绩管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…...

mimd 公平收敛在相图中的细节

aimd 的收敛已经说腻了&#xff0c;我曾经画了好几次相图。有朋友希望我能画一个 mimd 相图&#xff0c;我就再画一个稍微详细的。 下面相图收敛到稳定点的前提异步 mimd&#xff1a; 之所以要异步&#xff0c;举个例子&#xff0c;在执行 gx 时&#xff0c;要确保 y 已经执…...

爬虫--翻页tips

免责声明&#xff1a;本文仅做分享&#xff01; 伪线程 from DrissionPage import ChromiumPage import timepage ChromiumPage() page.get("https://you.ctrip.com/sight/taian746.html") # 初始化 第0页 index_page 0# 翻页点击函数 sleep def page_turn():page…...

论文内容分类与检测系统源码分享

论文内容分类与检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…...

【MySQL】将表导出CSV(可以使用excel打开)

1、准备工作 查看数据库&#xff1a; show databases;切换数据库&#xff1a; use 数据库名;查看表名字 show tables;2、单个表导出 需要替换导出csv文件目录和表名 SELECT * INTO OUTFILE 目录/文件名.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED …...

通用四期ARM架构银河麒麟桌面操作系统V10【安装、配置FTP服务端】

一、操作环境 服务端&#xff1a;银河麒麟桌面操作系统V10SP1 &#xff08;服务端包链接&#xff1a;https://download.csdn.net/download/AirIT/89747026&#xff09; 客户端&#xff1a;银河麒麟桌面操作系统V10SP1 &#xff08;客户端包链接&#xff1a;https://downloa…...

梧桐数据库(WuTongDB):RBO(Rule-Based Optimizer)优化器简介

RBO&#xff08;Rule-Based Optimizer&#xff0c;基于规则的优化器&#xff09; 是一种早期的数据库查询优化方法&#xff0c;它通过预定义的一组规则来决定查询的执行计划&#xff0c;而不是像 CBO&#xff08;Cost-Based Optimizer&#xff0c;基于成本的优化器&#xff09;…...

【农信网-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

Gitea Action 简单配置(CI/CD)

线上pipeline,&#xff08;我使用是本地仓库的&#xff0c;你们使用切换成官网的即可&#xff09; # 工作流的名称name: Build and Push Docker Image deployment-k8s# 触发条件&#xff0c;只在 master 或 main 分支发送推送时触发 on:push:branches:- main# 作业&#xff0c…...

苍穹外卖 修改nginx的端口后websocket连接失败解决

苍穹外卖 修改nginx的端口后websocket连接失败解决 问题&#xff1a; 后端配置好websocket后前端仍显示如图所示的错误 解决&#xff1a; 先用websocket在线工具测试后端是否能正常连接&#xff08;这个基本上不会出现问题&#xff09;用f12观察前端发送的请求 正常来说这个请…...

深圳实体门店有必要做GEO AI代运营吗

深圳实体门店有必要做GEO AI代运营吗一、开篇引言2026年深圳本地实体商业竞争进入白热化阶段&#xff0c;全城数百万家线下实体门店涵盖本地生活、家装工装、汽车服务、餐饮娱乐、教育培训等全品类&#xff0c;传统线下地推、门店自然客流、传统团购平台引流效果持续下滑&#…...

智慧树自动刷课助手:3步告别手动操作的学习效率工具

智慧树自动刷课助手&#xff1a;3步告别手动操作的学习效率工具 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的重复刷课操作而烦恼吗&#xff1f;智…...

DragonBones与Godot集成:骨骼动画的可编程化实践

1. 为什么在Godot里用DragonBones不是“锦上添花”&#xff0c;而是“绕不开的刚需” 去年上线一个横版动作手游Demo时&#xff0c;美术团队交来一套20个角色、每个角色含8套动画&#xff08;待机/跑动/跳跃/攻击/受击/死亡/闪避/必杀&#xff09;的Spine资源。我兴冲冲导入God…...

万星easy-vibe:描述需求即发布 零基础无需学语法

开源Easy-Vibe是一套开源AI编程学习方案&#xff0c;把学习顺序从先学语法再做项目翻转为直接做项目。文章拆解了项目驱动、提示词编写、AI编辑器和多Agent协作的完整流程&#xff0c;解释了为什么想法比语法更重要。 github上datawhalechina/easy-vibe&#xff1a;它在GitHub…...

基于Max78000与规则引导的音频数据集构建:边缘AI声音识别实战

1. 项目概述&#xff1a;当边缘AI遇见棕榈树里的“窃听者”在边缘计算和物联网设备大行其道的今天&#xff0c;我们常常面临一个核心矛盾&#xff1a;一方面&#xff0c;我们希望设备足够“聪明”&#xff0c;能实时识别并响应特定的声音模式&#xff0c;比如工厂里高压阀门的异…...

claude code用户如何迁移到taotoken解决封号与token不足问题

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Claude Code 用户如何迁移到 Taotoken 解决封号与 Token 不足问题 应用场景类&#xff0c;针对 Claude Code 用户常遇封号与 Token…...

Unity中实现深度遮挡:LingBot-Depth实战接入与优化

1. 这不是“加个插件就完事”的AR效果——为什么LingBot-Depth在Unity里值得专门写一篇实战教程你肯定见过那种AR应用&#xff1a;虚拟椅子摆在真实地板上&#xff0c;但当你绕到椅子后面&#xff0c;它依然完整显示&#xff0c;完全无视身后那堵真实的墙&#xff1b;或者一只3…...

你的差异基因结果可靠吗?用MetaVolcanoR给多个GEO数据集做一次‘交叉验证’吧

你的差异基因结果可靠吗&#xff1f;用MetaVolcanoR给多个GEO数据集做一次"交叉验证"当你在GEO数据库中下载了三个肺癌研究的差异表达结果&#xff0c;却发现三个DEG列表的重叠基因不到20%——这种令人沮丧的场景每天都在全球实验室上演。单项研究的差异分析结果就像…...

模拟调音台数字化改造:基于STM32与MOTU音频接口的智能控制方案

1. 项目概述&#xff1a;为老旧模拟调音台注入数字灵魂在不少社区广播电台、校园电台或是小型制作室里&#xff0c;你依然能看到那些服役了十几年甚至几十年的模拟调音台。它们皮实耐用&#xff0c;推子手感扎实&#xff0c;旋钮的阻尼感让人安心&#xff0c;但面对如今以数字文…...

ABS+神经网络:端到端宇宙学参数推断新范式解析

1. 项目概述&#xff1a;当ABS遇上神经网络&#xff0c;一个端到端宇宙学参数推断新范式的诞生 在宇宙学研究的核心地带&#xff0c;有一项任务既令人着迷又充满挑战&#xff1a;如何从宇宙微波背景&#xff08;CMB&#xff09;这张宇宙婴儿时期的“照片”中&#xff0c;精准地…...