`disk-perf-git-and-pnpm` 旨在证明 macOS 上的 APFS 存在问题。
Stress test for parallel disk i/o using git and pnpm

原始链接: https://github.com/NullVoxPopuli/disk-perf-git-and-pnpm

## 磁盘性能调查 该项目旨在识别macOS上Apple的APFS文件系统潜在的性能问题,同时也作为系统工具(如安全软件,EDR,病毒扫描器)的强大压力测试。核心方法是测量`git clean`和`pnpm install`操作在不同硬件和软件配置下所花费的时间。 鼓励参与者在他们的macOS(和其他操作系统)上运行这些测试,并记录CPU、RAM、操作系统版本、文件系统类型、磁盘详情,以及最终的“Clean”和“Install”时间(以秒为单位)。然后通过Pull Request将结果提交到此仓库,以便进行比较和分析。 收集的数据显示出显著的性能差异,尤其是在Apple Silicon上的APFS,并强调了加密、安全软件和Spotlight索引等因素的影响。该项目旨在收集广泛的数据集,以确定潜在的瓶颈,并了解不同的配置如何影响文件系统性能。 **要求:** Node.js >= 22.11 和 pnpm >= 10.2。

相关文章

原文

This repo aims to prove that something is wrong with APFS on macOS, but is also a good stress test in general when changing machine tooling that wants to oberve fs events (such as security tooling / EDR / virus scanners / etc).

Steps:

  1. Setup
  2. Gather Results
  3. Report / PR with your Results ❤️

have node @ >= 22.11 have pnpm @ >= 10.2

(if you have proto (with auto-install) or volta installed, these versions will be selected for you)

git clone https://github.com/NullVoxPopuli/disk-perf-git-and-pnpm.git
cd disk-perf-git-and-pnpm

pnpm install # Fill the cache so we don't hit the network during testing

Since you've installed all the dependencies already, we can start with the clean test:

time ( git clean -Xfd; git clean -fd )

Windows Powershell:

(Measure-Command { git clean -Xfd; git clean -fd }).ToString()

And then once that finishes, we can run the install test:

Windows Powershell:

(Measure-Command { pnpm install }).ToString()
If using zsh

your time will be total.

0.01s user 0.00s system 94% cpu 0.007 total
#.                              ^ this number

and round to the tenths decimal place

if using bash

your time will be real.

real    2.02s # this number
user    0.00s
sys     0.01s

and round to the tenths decimal place

How to find your disk info
  1. Apple Menu
  2. "About this Mac" (a window appears)
  3. "More Info..." (a window appears)
  4. scroll down and click "System Report..." (a window appears)
  5. in the left nav of this third window, click "NVMExpress"

PR your Results back to this Repo

and interact with the results here

Date CPU RAM (GB) Clean (s) Install (s) OS FileSystem Disk Notable Software Changes
2025-02-07 AMD Ryzen 5 7640U 12 Core 92 6.8 5.9 Ubuntu 24.04.1 Ext4 WD Black SN850 500GB
2025-02-24 AMD Ryzen 5 7640U throttle to ~550Mhz 92 56 44 Ubuntu 24.10 Ext4 WD Black SN850 500GB
2025-02-07 AMD Ryzen 9 7900X 12/24 Core 64 6.0 4.3 Ubuntu 24.04.1 Ext4 Samsung SSD 980 Pro 2TB
2025-02-07 AMD Ryzen 9 7900X 12/24 Core 64 3.3 4.0 Ubuntu 24.04.1 tmpfs (ramdisk) G.Skill F5-6000J3040G32G
2025-02-09 Apple M1 Pro 16 42.2 44.0 macOS 15.3 APFS (Encrypted) APPLE SSD AP0512R 500GB
2025-02-08 Apple M1 Max 64 31.5 44.2 macOS 14.7.3 APFS (Encrypted) APPLE SSD AP1024R 1TB
2025-02-08 Apple M4 16 29.6 31.4 macOS 15.2 APFS (Encrypted) APPLE SSD AP1024Z 1TB
2025-02-09 AMD Ryzen 7 7800X3D 8 Core 32 17.1 16.1 Ubuntu 22.04.3 Ext4 Corsair MP600 PRO LPX
2025-02-09 AMD Ryzen 7 7800X3D 8 Core 32 65.5 42.3 Windows 10 Pro 22H2 NTFS Corsair MP600 PRO LPX
2025-02-09 AMD Ryzen 5 7800X3D 8 Core 64 69.5 73.3 Windows 11 Pro 23H2 NTFS WD Black SN850x 2TB
2025-02-09 AMD Ryzen 5 7800X3D 8 Core 64 23.7 19.0 W11 Pro 23H2 / WSL2 / Ubuntu 24.04 Ext4 WD Black SN850x 2TB
2025-02-10 Intel i5-1145G7 8 Core 32 1.9 15.3 Debian Trixie Ext4 BC711 NVMe SK hynix 512GB
2025-02-12 Apple M1 Max 32 71.4 87.7 macOS 14.6.1 APFS (Encrypted) APPLE SSD AP2048R 2TB
2025-02-12 Apple M4 Pro (14 Cores) 48 30.1 65.1 macOS 15.3 APFS (Encrypted) APPLE SSD AP2048Z 2TB
2025-02-13 Apple M1 Ultra 64 45.2 137.5 macOS 15.3 APFS APPLE SSD AP1024R 1TB
2025-02-14 Apple M2 Max (6 vCPU) 16 3.2 12 Ubuntu 24.04 Ext4 APPLE SSD AP1024Z Parallels VM
2025-02-14 Apple M2 Max (6 vCPU) 16 2.8 11.9 Ubuntu 24.04 Ext4 LVM2 Encrypted APPLE SSD AP1024Z Parallels VM
2025-02-14 Apple M2 Max (6 vCPU) 16 1.6 10.7 Ubuntu 24.04 tmpfs (ramdisk) Hynix LPDDR5 / Virtual RAM Parallels VM
2025-02-15 Apple M1 Pro 32 44.5 50.2 macOS 15.3 APFS (Encrypted) APPLE SSD AP0512R 500GB
2025-02-19 Apple M1 16 37.8 33.3 macOS 15.3.1 APFS (Encypted) APPLE SSD AP0512Q 500GB
2025-02-19 Apple M1 Pro 16 59.4 69.1 macOS 14.7.3 APFS (Encrypted) APPLE SSD AP1024R 1TB
2025-02-21 Apple M3 16 36.23 30.3 macOS 15.3 APFS APPLE SSD AP0256Z 256GB
2025-02-20 Apple M4 Max (16 Cores) 128 36.7 64.5 macOS 15.2 APFS (Encrypted) APPLE SSD AP2048Z 2TB
2025-02-20 Apple M3 24 46.6 44.6 macOS ?? APFS APPLE SSD AP1024Z 1TB
2025-02-21 Intel Core i7 14700K (20 Cores) 64 3.1 13.8 W10 22H2 / WSL2 / Ubuntu 24.04 Ext4 WD Black 2TB SN850
2025-02-22 Apple M3 Pro 18 37.7 40 macOS 15.3 APFS APPLE SSD AP1024Z 1TB
2025-02-24 Apple M2 Pro 32 34.6 32.0 macOS 13.6 APFS APPLE SSD AP0512Z
2025-02-25 Apple M3 16 34.213 27.851 macOS 15.3.1 APFS APPLE SSD AP1024Z
2025-02-25 Apple M3 Pro (12 Core, 6p6e) 36 47.8 52.6 macOS 14.7.4 APFS APPLE SSD AP0512Z 500GB
2025-02-25 Apple M3 Pro (12 Core, 6p6e) 36 32 53.3 macOS 14.7.4 APFS APPLE SSD AP0512Z 500GB Spotlight disabled
2025-02-25 Apple M3 Pro (12 Core, 6p6e) 36 26.3 19.9 macOS 14.7.4 APFS APPLE SSD AP0512Z 500GB Spotlight disabled, csrutil disable
2025-02-26 Apple M2 Max (12 Core, 8p4e) 32 41.4 39.8 macOS 15.3.1 APFS (Encrypted) APPLE SSD AP1024Z 1TB Spotlight disabled, Kandji, SentinelOne
2025-02-26 Apple M4 Pro (14 Cores) (6 core vCPU) 6 2.5 16.9 Ubuntu 24.10 Ext4 Unencrypted APPLE SSD AP2048Z 2TB UTM VM
2025-02-28 Apple M2 Max (6 vCPU) 16 11.9 15.7 Ubuntu 24.04.2 Ext4 LVM2 Encrypted APPLE SSD AP1024Z Parallels VM, SentinelOne
2025-02-28 Apple M2 Max (6 vCPU) 16 9.1 13.3 Ubuntu 24.04.2 tmpfs (ramdisk) Hynix LPDDR5 / Virtual RAM Parallels VM, SentinelOne
2025-04-26 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 32 103.98 116.62 macOS 15.4.1 APFS (Encrypted) Apple SSD AP1024N
2025-04-27 Apple M4 Pro (14 Core, 10p4e) 48 64.48 145.40 macOS 15.3.2 APFS (Encrypted) Apple SSD AP1024Z
2025-04-27 Apple M4 Pro (14 Core, 10p4e) 48 3.209 17.302 Ubuntu 24.04.2 btrfs Apple SSD AP1024Z Ubuntu machine running in OrbStack
2025-10-06 Apple M2 Max (12 Core, 8p4e) 32 46.730 54.603 macOS 15.5 APFS (Encrypted) Apple SSD AP1024Z 1TB Kandji, Code42, SentinelOne, tested in excluded directory

If you're using macOS, and your file system performance is unbearable, there are some options:

联系我们 contact @ memedata.com