بنقرة واحدة
performance-optimization
Webアプリケーションのパフォーマンス分析と最適化。 フロントエンド、バックエンド、データベースの最適化戦略。 パフォーマンス改善、速度最適化、ボトルネック解消時に使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Webアプリケーションのパフォーマンス分析と最適化。 フロントエンド、バックエンド、データベースの最適化戦略。 パフォーマンス改善、速度最適化、ボトルネック解消時に使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
RESTful API の設計とドキュメント生成。 エンドポイント設計、リクエスト/レスポンス定義、OpenAPI仕様出力。 API設計、エンドポイント作成、APIドキュメント生成時に使用。
リレーショナルデータベースのスキーマ設計とマイグレーション作成。 正規化、インデックス設計、パフォーマンス考慮。 DB設計、テーブル作成、マイグレーション作成時に使用。
技術ドキュメントの作成と構造化。 README、API仕様書、アーキテクチャドキュメント、運用手順書。 ドキュメント作成、README生成、仕様書作成時に使用。
アプリケーションのエラーハンドリング設計と実装。 例外階層、エラーレスポンス、ログ戦略、リトライ処理。 エラー処理実装、例外設計、障害対応時に使用。
Gitコミットメッセージ作成とPR説明文生成。 Conventional Commits形式、変更内容の要約、レビューポイント整理。 コミット作成、PR作成、Git操作時に使用。
Reactコンポーネントの設計と実装パターン。 関数コンポーネント、カスタムフック、状態管理、アクセシビリティ。 Reactコンポーネント作成、フロントエンド実装時に使用。
| name | performance-optimization |
| description | Webアプリケーションのパフォーマンス分析と最適化。 フロントエンド、バックエンド、データベースの最適化戦略。 パフォーマンス改善、速度最適化、ボトルネック解消時に使用。 |
| version | 1.0.0 |
Webアプリケーション全体のパフォーマンス最適化を支援します。
L1: アプリケーションメモリ(最速、容量小)
L2: Redis/Memcached(高速、共有可能)
L3: CDN(静的コンテンツ)
L4: ブラウザキャッシュ
# ❌ N+1問題
users = User.query.all()
for user in users:
orders = Order.query.filter_by(user_id=user.id).all() # N回実行
# ✅ Eager Loading
users = User.query.options(joinedload(User.orders)).all()
# ✅ DataLoader パターン(GraphQL)
@dataloader
async def load_orders(user_ids):
orders = await Order.query.filter(Order.user_id.in_(user_ids)).all()
return group_by_user_id(orders, user_ids)
from functools import lru_cache
from redis import Redis
# メモリキャッシュ
@lru_cache(maxsize=1000)
def get_config(key: str) -> str:
return db.query(Config).filter_by(key=key).first().value
# Redisキャッシュ
class CacheService:
def __init__(self, redis: Redis, default_ttl: int = 3600):
self.redis = redis
self.default_ttl = default_ttl
async def get_or_set(
self,
key: str,
factory: Callable,
ttl: int = None
):
cached = await self.redis.get(key)
if cached:
return json.loads(cached)
value = await factory()
await self.redis.setex(
key,
ttl or self.default_ttl,
json.dumps(value)
)
return value
# 使用例
user = await cache.get_or_set(
f"user:{user_id}",
lambda: db.get_user(user_id),
ttl=300
)
# ❌ 1件ずつ処理
for item in items:
db.insert(item)
db.commit()
# ✅ バッチ処理
BATCH_SIZE = 1000
for i in range(0, len(items), BATCH_SIZE):
batch = items[i:i + BATCH_SIZE]
db.bulk_insert(batch)
db.commit()
| メトリクス | 目標値 | 測定方法 |
|---|---|---|
| LCP | < 2.5s | Lighthouse, RUM |
| FID | < 100ms | Lighthouse, RUM |
| CLS | < 0.1 | Lighthouse, RUM |
| TTFB | < 200ms | サーバーログ |
| API P95 | < 500ms | APM |
| DB Query P95 | < 100ms | スロークエリログ |