#disk-space #scan #disk #terminal #tui #low-memory

app spacedisplay

快速且轻量级的磁盘空间扫描工具

2 个不稳定版本

0.3.0 2023年3月26日
0.2.0 2022年10月26日

#911 in 文件系统

Download history 3/week @ 2024-03-22 22/week @ 2024-03-29 3/week @ 2024-04-05

每月 59 次下载

MIT/Apache

165KB
4K SLoC

spacedisplay-rs

Build

简单、跨平台且轻量级的终端应用程序,用于扫描和分析已用磁盘空间

demo

功能

  • 快速扫描和低内存占用(每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-2.0许可中定义的,您提交给工作的任何有意贡献都将按上述方式双许可,不附加任何额外的条款或条件。

依赖项

~7–18MB
~249K SLoC