← スキル一覧に戻る

unity-performance-check
by Sharks820
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: unity-performance-check description: Use before committing code or after major changes to verify performance. Catches expensive operations before they cause frame drops.
Unity Performance Check
Overview
Verify code performance BEFORE it causes problems in production. Frame drops ruin games.
When to Use
- Before committing new code
- After implementing Update/FixedUpdate logic
- When adding new systems
- Before major milestones
- When users report lag
The Quick Check (30 seconds)
Run these searches on changed files:
// RED FLAGS - Fix these immediately:
GetComponent // In Update? Cache it
Find( // In Update? Never do this
FindObjectOfType // Anywhere? Avoid if possible
new List // In Update? Preallocate
new Dictionary // In Update? Preallocate
.ToString() // In Update? Cache or avoid
string + // In Update? StringBuilder
foreach // On non-List? May allocate
The Full Check (5 minutes)
Use the unity-performance-profiler agent:
Task: Launch unity-performance-profiler agent with:
"Analyze [file/folder] for performance issues"
Performance Rules
Update Loop (60fps = 16.6ms budget)
| Operation | Cost | Rule |
|---|---|---|
| GetComponent | ~1ms | Cache in Start |
| Find/FindObjectOfType | ~5-50ms | Never use |
| Instantiate | ~2-10ms | Use object pool |
| new List/Dictionary | ~0.1ms + GC | Preallocate |
| String concat | ~0.5ms + GC | StringBuilder |
| LINQ query | ~1-5ms + GC | Use loops |
| Physics.Raycast | ~0.1ms | Batch or limit |
Memory (GC spikes cause stutters)
| Cause | Solution |
|---|---|
| new in Update | Preallocate collections |
| String operations | Cache strings, use StringBuilder |
| LINQ methods | Convert to explicit loops |
| Boxing (int to object) | Use generics |
| Closures in lambdas | Cache delegates |
| foreach on IEnumerable | Use for loops on arrays/lists |
VeilBreakers-Specific
| System | Performance Concern | Solution |
|---|---|---|
| Combat | Damage calc per frame | Batch damage events |
| Brand lookup | Switch statement | Dictionary lookup |
| Synergy calc | Recalc every frame | Cache on party change |
| UI updates | Rebuild every frame | Dirty flag pattern |
Checklist
Before committing, verify:
- No GetComponent in Update/FixedUpdate
- No Find/FindObjectOfType anywhere
- No allocations in hot paths
- Collections preallocated
- Strings not concatenated in loops
- Events properly unsubscribed
- Object pooling for spawned objects
If Performance is Bad
- Profile first - Don't guess, measure
- Find the hotspot - Usually 1-2 methods
- Fix the algorithm - O(n²) → O(n) > micro-optimizations
- Cache results - Don't recalculate what hasn't changed
- Batch operations - Process multiple items together
- Use jobs/burst - For heavy math (advanced)
スコア
総合スコア
40/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です