2 个不稳定版本

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

#1046 in 文件系统

Download history 22/week @ 2024-03-28 26/week @ 2024-04-04 2/week @ 2024-04-25 7/week @ 2024-05-09

69 次每月下载
用于 spacedisplay

MIT/Apache

99KB
2.5K 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, 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-2.0许可证定义提交给作品的内容,都应双许可,如上所述,不附加任何额外条款或条件。

依赖项

~2–19MB
~216K SLoC