当前位置: 首页 > 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观察前端发送的请求 正常来说这个请…...

Qwen3-VL-2B-Instruct保姆级教程:视觉对话机器人部署

Qwen3-VL-2B-Instruct保姆级教程&#xff1a;视觉对话机器人部署 1. 环境准备与快速部署 想要体验AI视觉对话的神奇能力吗&#xff1f;Qwen3-VL-2B-Instruct让你不用昂贵的显卡也能拥有一个能"看懂"图片的智能助手。这个教程将手把手带你完成整个部署过程&#xff…...

ipa 覆盖算法参数调优实战:从理论到可视化验证

1. IPA覆盖算法核心参数解析 在机器人路径规划领域&#xff0c;IPA覆盖算法因其高效性和适应性被广泛应用。这个算法的核心在于几个关键参数的协同作用&#xff0c;它们直接影响着机器人的覆盖路径质量和执行效率。让我们先来认识这些"幕后操控者"&#xff1a; cover…...

FastBle终极指南:如何快速开发智能家电蓝牙遥控器

FastBle终极指南&#xff1a;如何快速开发智能家电蓝牙遥控器 【免费下载链接】FastBle Android Bluetooth Low Energy (BLE) Fast Development Framework. It uses simple ways to filter, scan, connect, read ,write, notify, readRssi, setMTU, and multiConnection. 项目…...

汉码未来提醒大家:为什么说 “保技术” 才是最真的 “保就业”?

市场上很多培训机构宣传 “包就业”“保薪资”&#xff0c;但从行业真实规则来看&#xff0c;如果技术没有真正掌握&#xff0c;任何就业承诺都缺乏实际支撑。原因非常简单&#xff1a;技术面试无法造假。无论简历如何包装&#xff0c;面试官都会通过现场编码、项目细节追问、技…...

Mac开发者必备:OpenClaw联动千问3.5-27B实现代码审查自动化

Mac开发者必备&#xff1a;OpenClaw联动千问3.5-27B实现代码审查自动化 1. 为什么需要代码审查自动化&#xff1f; 作为独立开发者&#xff0c;我经常面临一个尴尬局面&#xff1a;在深夜提交代码后&#xff0c;第二天才发现引入了低级语法错误或潜在漏洞。传统CI工具虽然能捕…...

Arduino驱动OV7670图像传感器:底层时序与跨平台实现

1. Arduino_OV767X 库深度解析&#xff1a;OV7670 CMOS 图像传感器在 Arduino 平台上的底层驱动与工程实践OV7670 是 OmniVision&#xff08;现属韦尔半导体&#xff09;于 2000 年代初推出的超低功耗、单芯片 QVGA&#xff08;320240&#xff09;彩色 CMOS 图像传感器。其采用…...

Linux时钟子系统:CCF框架与驱动开发实践

1. Linux时钟子系统概述在嵌入式Linux系统中&#xff0c;时钟管理是驱动开发的基础环节之一。时钟子系统负责为整个系统提供精确的时序控制&#xff0c;从CPU主频到外设工作时钟&#xff0c;都需要通过时钟子系统进行管理和配置。Linux内核通过CCF&#xff08;Common Clock Fra…...

宽带任意阶贝塞尔光束模型与超表面实现案例

宽带任意阶 贝塞尔光束 超表面 模型 fdtd 案例内容&#xff1a;主要包括文章的两个贝塞尔光束模型&#xff0c;一个零阶贝塞尔光束一个一阶贝塞尔光束&#xff0c;采用二氧化钛介质单元执行几何相位来构建&#xff1b; 案例包括fdtd模型、fdtd设计脚本、Matlab计算代码和复现结…...

解决Python文件路径超长问题:Windows系统下的终极指南

解决Python文件路径超长问题&#xff1a;Windows系统下的终极指南 在Windows平台上开发Python应用时&#xff0c;文件路径长度限制是个令人头疼的"历史遗留问题"。记得第一次接手一个大型Python项目时&#xff0c;我花了整整两天时间才搞明白为什么某些文件总是无法读…...

多图拼长条与宫格拼接批处理备忘

手头有一批产品白底图&#xff0c;需要批量产出两类物料&#xff1a;一类是横向四连图做详情对比&#xff0c;一类是 22 宫格做缩略封面。统一用【批量图片拼接工具】走完&#xff0c;下面只记参数组合和踩坑点&#xff0c;不写实现细节。输入侧是「主文件夹」路径&#xff0c;…...