2 个不稳定版本
0.3.0 | 2023年3月26日 |
---|---|
0.2.0 | 2022年10月26日 |
#1046 in 文件系统
69 次每月下载
用于 spacedisplay
99KB
2.5K 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, Right | 打开所选目录 |
D | 删除所选目录/文件(打开确认对话框) |
Esc, Backspace, Left | 转到父目录 |
按 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
的性能可以通过在Linux和macOS上使用performance.sh
(在Windows上使用performance.ps
)来测量(相对于其他工具)。性能测量使用了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, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则任何根据Apache-2.0许可证定义提交给作品的内容,都应双许可,如上所述,不附加任何额外条款或条件。
依赖项
~2–19MB
~216K SLoC