2 个不稳定版本
0.3.0 | 2023年3月26日 |
---|---|
0.2.0 | 2022年10月26日 |
#911 in 文件系统
每月 59 次下载
165KB
4K SLoC
spacedisplay-rs
简单、跨平台且轻量级的终端应用程序,用于扫描和分析已用磁盘空间
功能
- 快速扫描和低内存占用(每1MB文件约45MB)
- 从应用程序中删除文件
- 检测文件更改,以便可以从外部修改文件系统。在 Linux 上,这受 inotify 限制。
- 如果未检测到文件更改,则可手动重新扫描目录
- 终端 UI,可通过 SSH 使用
- 小型(Windows 上约 1MB,Linux 上约 5MB),自包含的二进制文件,无额外依赖项
安装
GitHub 发布
请访问 GitHub 发布页面 以获取最新构建版本。
Cargo
您可以使用 cargo 安装 spacedisplay
cargo install spacedisplay
基本用法
在您的终端中运行二进制文件。如果没有带参数启动,将打开帮助屏幕,并解释控制功能
键 | 操作 |
---|---|
H, F1 | 打开帮助/控制屏幕 |
F | 打开文件屏幕 |
S | 打开扫描统计信息 |
Q | 退出 |
N | 开始新扫描(打开带有可用挂载点的对话框) |
R, F5 | 重新扫描当前打开的目录 |
上/下 | 在文件列表中上下移动 |
Enter, 右键 | 打开所选目录 |
D | 删除所选目录/文件(打开确认对话框) |
Esc, Backspace, 左键 | 转到父目录 |
按 N
打开 New scan
对话框并选择要扫描的挂载点。扫描开始后,将打开文件屏幕。按 S
可以打开扫描统计信息对话框。在文件列表打开时,将跟踪文件系统中的所有更改(包括来自外部应用程序的更改)。
性能
spacedisplay 在速度和内存占用方面都效率很高。因此,扫描速度主要受磁盘访问以收集元数据的影响。以下是扫描根分区所需时间的测试结果。
平台 | 文件+目录 | SpaceDisplay | 文件管理器 |
---|---|---|---|
Windows 10 | 730K | 13.2s | 38.2s |
Kubuntu | 700K | 1.8s | 3.8s |
macOS Big Sur | 61K | 1.4s | 2.0s |
在上面的测试中,默认文件管理器是 Windows 上的 Explorer,Kubuntu 上的 Dolphin,macOS 上的 Finder。
spacedisplay 在内存使用方面也较轻。
扫描1M个文件仅使用约45MB的RAM(在Ubuntu 22.04上测量)。
性能测试
spacedisplay
的性能可以通过performance.sh
(在Linux和macOS上)和performance.ps
(在Windows上)来测量(相对于其他工具)。性能测量使用hyperfine。在Windows上,您还需要启用脚本的执行。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
这些脚本不测量实际的硬盘速度,因为使用了预热,并且文件系统信息在操作系统级别被缓存。首次运行时,由于对硬盘的慢速调用,扫描时间将大大增加。
某些平台上的结果
Manjaro 22.0.5(600k个文件)
命令 | 平均值[s] | 最小值[s] | 最大值[s] | 相对值 |
---|---|---|---|---|
spacedisplay |
1.252 ± 0.014 | 1.235 | 1.281 | 1.00 |
du-sh |
1.868 ± 0.037 | 1.830 | 1.965 | 1.49 ± 0.03 |
macOS 11.7(65k个文件)
命令 | 平均值[s] | 最小值[s] | 最大值[s] | 相对值 |
---|---|---|---|---|
spacedisplay |
1.211 ± 0.055 | 1.153 | 1.343 | 2.98 ± 0.14 |
du-sh |
0.407 ± 0.003 | 0.404 | 0.412 | 1.00 |
Windows(60k个文件)
命令 | 平均值[s] | 最小值[s] | 最大值[s] | 相对值 |
---|---|---|---|---|
spacedisplay |
0.561 ± 0.013 | 0.544 | 0.587 | 1.00 |
dir/s |
1.647 ± 0.107 | 1.515 | 1.816 | 2.94 ± 0.20 |
许可
许可以下之一
- Apache License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT或http://opensource.org/licenses/MIT)
供您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可中定义的,您提交给工作的任何有意贡献都将按上述方式双许可,不附加任何额外的条款或条件。
依赖项
~7–18MB
~249K SLoC