清理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/
目录,用于存储构建产物,包括编译后的二进制文件、依赖项的编译结果等。这个目录可能会占用大量空间,尤其是当有多个构建配置(如 debug
和 release
)时。
要查看某个项目的 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
的缓存信息,包括 registry
、git
和 target
目录的大小。
如果你想要清理缓存,也可以使用 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的磁盘频频空间高级,发现是/Users/yourname/Library/Caches/go-build 目录占用了大量空间。 此目录保存来自 Go 构建系统的缓存构建工件。 如果目录太大,请运行go clean -cache。 运行go clean -fuzzcache以删除模糊缓存。 当时直接手工清理了…...
【linux】 ls命令
ls 命令是 Linux 和 Unix 系统中用于列出目录内容的命令。它显示指定目录下的文件和子目录列表。如果不指定目录,ls 默认显示当前目录下的内容。 基本用法 ls [选项] [文件或目录...] 无选项:简单地列出当前目录下的文件和目录。文件或目录࿱…...

STM32的寄存器深度解析
目录 一、STM32 寄存器概述 二、寄存器的定义与作用 三、寄存器分类 1.内核寄存器 2.外设寄存器 四、重要寄存器详解 1.GPIO 相关寄存器 2.定时器相关寄存器 3.中断相关寄存器 4.RCC 相关寄存器 五、寄存器操作方法 1.直接操作寄存器 2.使用库函数操作寄存器 六…...
win11 运行vmware workstation 虚拟机很卡,解决办法
本身win11的hyper V和vmare workstation有兼容性问题,正常来说,不能二者共存 需要在win11上流畅运行vmare虚拟机,需要在win11用管理员权限打开power shell 然后在里面运行命令: bcdedit /set hypervisorlaunchtype off powercfg /powerthr…...

C语言 | Leetcode C语言题解之第404题左叶子之和
题目: 题解: 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
点击下载:jeesite5.8.1-db2-sql.rar 提取码: yqev...

微信小程序页面制作——婚礼邀请函(含代码)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
股票量化接口api,国内股票期权怎么交易
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
Spring解决循环依赖的原理
通过将自己注入自己,使用代理对象调用add方法解决了事务失效问题,但是这样不会产生循环依赖吗? 在OrdersCreateServiceImpl 中注入的是OrdersCreateServiceImpl 的代理对象,并不是OrdersCreateServiceImpl 本身实例,构…...

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

基于python+django+vue的学生成绩管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…...

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

爬虫--翻页tips
免责声明:本文仅做分享! 伪线程 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、准备工作 查看数据库: show databases;切换数据库: use 数据库名;查看表名字 show tables;2、单个表导出 需要替换导出csv文件目录和表名 SELECT * INTO OUTFILE 目录/文件名.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED …...

通用四期ARM架构银河麒麟桌面操作系统V10【安装、配置FTP服务端】
一、操作环境 服务端:银河麒麟桌面操作系统V10SP1 (服务端包链接:https://download.csdn.net/download/AirIT/89747026) 客户端:银河麒麟桌面操作系统V10SP1 (客户端包链接:https://downloa…...
梧桐数据库(WuTongDB):RBO(Rule-Based Optimizer)优化器简介
RBO(Rule-Based Optimizer,基于规则的优化器) 是一种早期的数据库查询优化方法,它通过预定义的一组规则来决定查询的执行计划,而不是像 CBO(Cost-Based Optimizer,基于成本的优化器)…...

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

Gitea Action 简单配置(CI/CD)
线上pipeline,(我使用是本地仓库的,你们使用切换成官网的即可) # 工作流的名称name: Build and Push Docker Image deployment-k8s# 触发条件,只在 master 或 main 分支发送推送时触发 on:push:branches:- main# 作业,…...

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

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...