Skip to content
Skillv1.0.0

perf-optimizer

PoLang 性能优化专家。诊断内存泄漏、卡顿、帧率下降,提供 Profiler 使用指南与性能基线对比。

by littleseven(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from littleseven/polang (skills/perf-optimizer/SKILL.md). Install upstream with npx skills add littleseven/polang --skill perf-optimizer. Copyright stays with the author.

性能优化专家 (Performance Optimizer)

定位:诊断内存泄漏、卡顿、帧率下降,确保满足 [PERF] 红线指标。 触发时机:用户反馈卡顿、FPS 下降、OOM、启动慢、相册滑动不流畅时。


核心指标红线

指标 目标 测量方式
冷启动 < 500ms Application.onCreate → 首帧预览
快门延迟 < 50ms 点击 → 触感/音效触发
交互反馈 < 100ms 滑杆变更 → 画面变化
预览帧率 ≥ 55fps 调试浮层 FPS 计数
GPU 处理 < 300ms (1080p) PoLang:PhotoProcessor 日志
相册滑动 120fps 目标 dumpsys gfxinfo jank 计数

诊断流程

Step 1: 确定性能瓶颈类型

# 收集基础性能数据
adb shell dumpsys meminfo com.mamba.picme
adb shell dumpsys gfxinfo com.mamba.picme | grep -i "jank\|frame"
adb logcat -d | grep -E "PoLang:.*elapsed|PoLang:.*FPS|PoLang:.*perf"
症状 瓶颈类型 工具
界面卡顿、掉帧 UI/渲染线程 Systrace / Perfetto
内存持续增长 内存泄漏 Memory Profiler / LeakCanary
启动慢 初始化阻塞 CPU Profiler / Method Tracing
相册滑动卡 RecyclerView/Compose 优化 Layout Inspector
拍照后处理慢 GPU/Shader 性能 GPU Profiler / 自定义计时

Step 2: 使用 Android Studio Profiler

CPU Profiler

  • 采样方式:Trace Java Methods(精度高)或 Sample Java Methods(开销低)
  • 关注:主线程是否有耗时操作(> 16ms)

Memory Profiler

  • 抓取 Heap Dump → 检查 retained size 异常增长
  • 关注:BitmapByteArrayNative 内存

GPU Profiler

  • 检查 renderThread 每帧耗时
  • 目标:每帧 < 16.67ms(60fps)或 < 8.33ms(120fps)

Step 3: 日志分析

# 提取性能相关日志
adb logcat -d | grep -E "PoLang:.*elapsed|PoLang:.*FPS|PoLang:.*perf|PoLang:.*memory"

# 检查是否有超时警告
grep -i "timeout\|slow\|jank\|dropped" scripts/auto_test_output/*/logcat_picme.txt

常见性能陷阱

陷阱 症状 修复
主线程 IO ANR / 卡顿 移至 Dispatchers.IO / 后台线程
Bitmap 未复用 OOM / 频繁 GC 使用 BitmapFactory.Options.inBitmap
FBO 每帧创建 GPU 帧率下降 初始化时创建,复用
StateFlow 高频更新 重组风暴 使用 debounce / sample
相册无预加载 滑动白屏 LazyColumn 设置 prefetch / 自定义预加载
LeakCanary 报警 Activity/Fragment 泄漏 检查 DisposableEffect 清理、匿名内部类

性能基线对比

使用 ./scripts/perf-baseline.sh 自动提取:

# 运行性能基线测试
./scripts/perf-baseline.sh

# 输出示例
FPS: 58.2 (目标:  55) ✅
PhotoProcess: 245ms (目标: < 300ms) ✅
MemoryPeak: 186MB (基线: 180MB) ⚠️

相关文件

版本历史

版本 日期 变更
1.0.0 2026-05-25 初始版本

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/littleseven-polang-perf-optimizer/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

littleseven-polang-perf-optimizer.ocm.jsonjson
{
  "ocm": "1",
  "id": "littleseven-polang-perf-optimizer",
  "kind": "skill",
  "name": "perf-optimizer",
  "description": "PoLang 性能优化专家。诊断内存泄漏、卡顿、帧率下降,提供 Profiler 使用指南与性能基线对比。",
  "publisher": "littleseven",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "performance",
      "profiler",
      "memory",
      "leak",
      "jank",
      "fps",
      "optimization",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "PoLang 性能优化专家。诊断内存泄漏、卡顿、帧率下降,提供 Profiler 使用指南与性能基线对比。"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/littleseven/polang",
      "path": "skills/perf-optimizer/SKILL.md",
      "ref": "b42686cee8b908fbd31b5dd01e8028f2d81df55f",
      "url": "https://github.com/littleseven/polang/blob/b42686cee8b908fbd31b5dd01e8028f2d81df55f/skills/perf-optimizer/SKILL.md",
      "key": "littleseven/polang/skills/perf-optimizer/SKILL.md"
    }
  },
  "instructions": "# 性能优化专家 (Performance Optimizer)\n\n> **定位**:诊断内存泄漏、卡顿、帧率下降,确保满足 [PERF] 红线指标。\n> **触发时机**:用户反馈卡顿、FPS 下降、OOM、启动慢、相册滑动不流畅时。\n\n---\n\n## 核心指标红线\n\n| 指标 | 目标 | 测量方式 |\n|------|------|----------|\n| 冷启动 | < 500ms | `Application.onCreate` → 首帧预览 |\n| 快门延迟 | < 50ms | 点击 → 触感/音效触发 |\n| 交互反馈 | < 100ms | 滑杆变更 → 画面变化 |\n| 预览帧率 | ≥ 55fps | 调试浮层 FPS 计数 |\n| GPU 处理 | < 300ms (1080p) | `PoLang:PhotoProcessor` 日志 |\n| 相册滑动 | 120fps 目标 | `dumpsys gfxinfo` jank 计数 |\n\n---\n\n## 诊断流程\n\n### Step 1: 确定性能瓶颈类型\n\n```bash\n# 收集基础性能数据\nadb shell dumpsys meminfo com.mamba.picme\nadb shell dumpsys gfxinfo com.mamba.picme | grep -i \"jank\\|frame",
  "cost": {
    "context_tokens": 614
  }
}

Fetch it by URL: GET /api/v1/registry/littleseven-polang-perf-optimizer/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.