|
实时显示内存、CPU、Swap、磁盘使用情况,圆环仪表 + 详情卡片一目了然 |
按内存占用排序,显示进程名、PID、内存占用、占比、CPU 使用率 |
|
支持按进程名或 PID 模糊搜索,快速定位目标进程 |
点击表头可按任意列排序,支持升降序切换 |
|
支持 1/3/5/10/30 秒刷新间隔,可随时暂停/恢复 |
双击或右键查看进程详细信息,支持一键复制路径 |
|
自动检测并显示内存正常 / 偏高 / 紧张状态 |
实时展示内存占用 Top 5 进程的可视化柱状图 |
| 技术 | 说明 | 链接 |
|---|---|---|
| Swift 5.9 | 主要开发语言 | 🔗 官方文档 |
| SwiftUI | 声明式 UI 框架 | 🔗 Apple Developer |
| Combine | 响应式编程框架 | 🔗 Apple Developer |
| XcodeGen | 项目生成工具 | 🔗 GitHub |
| proc_pidinfo | 进程信息采集 API | 🔗 Apple Docs |
| host_statistics64 | 系统内存统计 API | 🔗 Apple Docs |
| sysctl | 系统控制 API | 🔗 Man Page |
# 1. 克隆项目
git clone https://github.com/Pikulo/showmacresource.git
cd showmacresource
# 2. 安装 XcodeGen(如未安装)
brew install xcodegen
# 3. 生成 Xcode 项目
xcodegen generate
# 4. 打开项目
open ShowMacResource.xcodeproj要求:macOS 13.0+、Xcode 15.0+、Swift 5.9
ShowMacResource/
├── ShowMacResourceApp.swift # App 入口
├── Models/
│ ├── Enums.swift # 排序枚举定义
│ └── MemoryProcess.swift # 进程数据模型
├── Services/
│ ├── ProcessScanner.swift # 进程扫描器(proc_pidinfo API)
│ └── SystemInfo.swift # 系统信息采集(CPU/Swap/磁盘/内存详情)
├── ViewModels/
│ └── ResourceViewModel.swift # ViewModel(数据管理 + 排序 + 定时刷新)
└── Views/
├── ContentView.swift # 主视图(Table + 工具栏)
├── DashboardView.swift # 顶部仪表盘
├── RingGaugeView.swift # 圆环进度组件
├── ProcessDetailView.swift # 进程详情弹窗
└── TopMemoryChartView.swift # Top 5 柱状图组件
graph LR
A[Views] -->|观察| B[ViewModels]
B -->|调用| C[Services]
C -->|读取| D[System APIs]
B -->|使用| E[Models]
A -->|使用| E
采用 MVVM 架构,职责清晰:
- Views:SwiftUI 声明式视图,负责 UI 展示
- ViewModels:通过
@StateObject/@Published管理状态和业务逻辑 - Services:封装系统 API 调用(
proc_pidinfo、host_statistics64、sysctl) - Models:纯数据模型,无业务逻辑
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'feat: add amazing feature') - 推送分支 (
git push origin feature/amazing-feature) - 提交 Pull Request
本项目基于 MIT License 开源。
如果觉得有帮助,请给个 ⭐ Star 支持一下!
