performance-analyzer
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePerformance Analyzer Skill
Performance Analyzer 技能
パフォーマンスボトルネックを特定し、最適化提案を行うスキルです。
这是一款用于识别性能瓶颈并提供优化建议的技能。
概要
概要
コードの実行時間、メモリ使用量、アルゴリズム複雑度を分析し、具体的な最適化提案を提供します。
分析代码的执行时间、内存使用量、算法复杂度,并提供具体的优化建议。
主な機能
主要功能
- アルゴリズム複雑度分析: Big O記法での評価
- N+1クエリ検出: データベースクエリの最適化
- メモリリーク検出: 未解放リソース、循環参照
- キャッシング機会: メモ化、CDN活用
- 非同期処理: 並列化、Promise最適化
- バンドルサイズ: Tree shaking、Code splitting
- レンダリング最適化: 仮想化、遅延読み込み
- 算法复杂度分析:使用Big O标记进行评估
- N+1查询检测:数据库查询优化
- 内存泄漏检测:未释放资源、循环引用
- 缓存优化机会:记忆化、CDN活用
- 异步处理优化:并行化、Promise优化
- 包体积优化:Tree shaking、代码分割
- 渲染优化:虚拟化、懒加载
使用方法
使用方法
このコードのパフォーマンス分析:
[コード]
分析項目:
- アルゴリズム複雑度
- メモリ使用量
- 最適化提案分析以下代码的性能:
[代码]
分析项:
- 算法复杂度
- 内存使用量
- 优化建议分析例
分析示例
N+1 クエリ問題
N+1 查询问题
問題のあるコード:
javascript
// O(n) のクエリを n 回実行 = O(n²)
const posts = await Post.findAll();
for (const post of posts) {
post.author = await User.findById(post.authorId); // N+1問題
}最適化:
javascript
// O(n) + O(m) = O(n)
const posts = await Post.findAll();
const authorIds = posts.map(p => p.authorId);
const authors = await User.findByIds(authorIds); // 1回のクエリ
const authorMap = new Map(authors.map(a => [a.id, a]));
posts.forEach(post => post.author = authorMap.get(post.authorId));改善: クエリ数 101回 → 2回、レスポンス時間 90% 削減
存在问题的代码:
javascript
// O(n) のクエリを n 回実行 = O(n²)
const posts = await Post.findAll();
for (const post of posts) {
post.author = await User.findById(post.authorId); // N+1問題
}优化方案:
javascript
// O(n) + O(m) = O(n)
const posts = await Post.findAll();
const authorIds = posts.map(p => p.authorId);
const authors = await User.findByIds(authorIds); // 1回のクエリ
const authorMap = new Map(authors.map(a => [a.id, a]));
posts.forEach(post => post.author = authorMap.get(post.authorId));优化效果: 查询次数从101次减少到2次,响应时间缩短90%
アルゴリズム最適化
算法优化
非効率:
python
undefined非高效实现:
python
undefinedO(n²) - 遅い
O(n²) - 遅い
def has_duplicates(arr):
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr[i] == arr[j]:
return True
return False
**最適化**:
```pythondef has_duplicates(arr):
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if arr[i] == arr[j]:
return True
return False
**优化方案**:
```pythonO(n) - 高速
O(n) - 高速
def has_duplicates(arr):
return len(arr) != len(set(arr))
undefineddef has_duplicates(arr):
return len(arr) != len(set(arr))
undefinedメモリ最適化
内存优化
問題:
javascript
// メモリリーク: イベントリスナーが解放されない
component.addEventListener('click', handler);修正:
javascript
// クリーンアップ
const controller = new AbortController();
component.addEventListener('click', handler, { signal: controller.signal });
// コンポーネント破棄時
controller.abort();问题代码:
javascript
// メモリリーク: イベントリスナーが解放されない
component.addEventListener('click', handler);修复方案:
javascript
// クリーンアップ
const controller = new AbortController();
component.addEventListener('click', handler, { signal: controller.signal });
// コンポーネント破棄時
controller.abort();出力レポート
输出报告
markdown
undefinedmarkdown
undefinedパフォーマンス分析レポート
性能分析报告
サマリー
摘要
- Critical: 2件(即時対応必須)
- High: 4件(短期対応)
- Medium: 6件(中期改善)
- Critical: 2件(需立即处理)
- High: 4件(需短期处理)
- Medium: 6件(中期优化)
Critical 問題
Critical 问题
[CRITICAL] N+1 クエリ問題
[CRITICAL] N+1 查询问题
場所: api/posts.ts:45-52
影響: 100件のデータで101回のクエリ実行
レスポンス時間: 2.5秒 → 0.3秒(88%改善可能)
位置: api/posts.ts:45-52
影响: 处理100条数据时执行101次查询
响应时间: 2.5秒 → 0.3秒(可提升88%)
[CRITICAL] O(n²) アルゴリズム
[CRITICAL] O(n²) 算法
場所: utils/search.py:23
影響: 10,000件で100,000,000回の比較
実行時間: 45秒 → 0.5秒(98%改善可能)
位置: utils/search.py:23
影响: 处理10,000条数据时执行100,000,000次比较
执行时间: 45秒 → 0.5秒(可提升98%)
最適化提案
优化建议
- データベースクエリ: Eager loading使用
- アルゴリズム: ハッシュテーブル活用
- キャッシング: Redis導入
- 非同期処理: Promise.all で並列化
undefined- 数据库查询: 使用Eager loading
- 算法: 利用哈希表
- 缓存: 引入Redis
- 异步处理: 使用Promise.all 实现并行化
undefinedベストプラクティス
最佳实践
- 計測: プロファイリングツール使用
- ボトルネック特定: 最も影響の大きい部分から最適化
- トレードオフ: 可読性とのバランス
- 継続的監視: APM ツール導入
- 性能测量: 使用性能分析工具
- 瓶颈定位: 优先优化影响最大的环节
- 权衡取舍: 平衡性能与代码可读性
- 持续监控: 引入APM工具
バージョン情報
版本信息
- スキルバージョン: 1.0.0
- 最終更新: 2025-01-22
- 技能版本: 1.0.0
- 最后更新: 2025-01-22