Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 ShowMacResource

原生 macOS 内存占用监控工具,基于 SwiftUI 构建

Swift SwiftUI Platform License GitHub Stars GitHub Forks GitHub Issues


ShowMacResource 截图


✨ 功能特性

📊 系统仪表盘

实时显示内存、CPU、Swap、磁盘使用情况,圆环仪表 + 详情卡片一目了然

📋 进程列表

按内存占用排序,显示进程名、PID、内存占用、占比、CPU 使用率

🔍 搜索过滤

支持按进程名或 PID 模糊搜索,快速定位目标进程

↕️ 表头排序

点击表头可按任意列排序,支持升降序切换

🔄 自动刷新

支持 1/3/5/10/30 秒刷新间隔,可随时暂停/恢复

📄 进程详情

双击或右键查看进程详细信息,支持一键复制路径

🏷️ 内存状态

自动检测并显示内存正常 / 偏高 / 紧张状态

📈 Top 5 柱状图

实时展示内存占用 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
Loading

采用 MVVM 架构,职责清晰:

  • Views:SwiftUI 声明式视图,负责 UI 展示
  • ViewModels:通过 @StateObject / @Published 管理状态和业务逻辑
  • Services:封装系统 API 调用(proc_pidinfohost_statistics64sysctl
  • Models:纯数据模型,无业务逻辑

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'feat: add amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 提交 Pull Request

⭐ Star History


📄 许可

本项目基于 MIT License 开源。


如果觉得有帮助,请给个 ⭐ Star 支持一下!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages