こんにちは、ENECHANGEの杉浦です。
今回Cursorを使用して高負荷処理のメモリー圧迫の問題を解決しました。
その結果AIエージェントを利用することによる問題改善に至るプロセスの変化を体感しました。
従来のプロセス
従来の場合、私は以下を繰り返す事で問題解決をしていました。
問題の特定と仮説
- ログやメトリクスから問題の兆候を探る
- これまでの経験・知識をもとに怪しい処理に当たりを付ける
実装と検証
- 仮説に基づいて修正コードを実装
- 実際に検証環境でテスト実行
- パフォーマンステストを実施
計測と分析
- メモリ使用量、CPU使用率、処理時間を計測
- 修正前後の分析データを収集し評価
従来手法の課題
- 開発メンバーの経験・知識に依存する
- 試行錯誤が多いため、時間がかかる
AIエージェントを利用したプロセス
今回のメモリー圧迫の問題では、CursorのAIエージェントを活用することで、従来とは異なるアプローチで問題解決に取り組みました。
現状分析
- 発生している問題をAIに詳細に説明
- AIを利用し分析用ログ出力の処理を追加
開発者による実行とログ収集
- 該当処理の実行
- メモリ使用量の分析用ログの収集
- メトリクスのCPU、メモリーの使用率を確認
ログ分析と改善コードの修正
- AIにログを提供し分析・改善コードの追加を依頼
- AIがコード全体を分析し問題箇所を特定しコードの修正を実施 ※この段階で私の観点で見落としていた改善点が修正されました
開発者による実行とログ収集
- 該当処理の実行
- メモリ使用量の分析用ログの収集
- メトリクスのCPU、メモリーの使用率を確認
計測と分析
- メモリ使用量、CPU使用率、処理時間を計測
- 修正前後の分析データを収集
- 改善効果を評価
- 必要に応じて追加の調整を実施
AIエージェント活用のメリット
- コード全体を瞬時に分析し、問題箇所を特定
- 人間が見落としがちな部分も含めて包括的に分析
- 最新のベストプラクティスや知見を活用
今回学んだこと
今回の取り組みではAIエージェントへ分析ログを提供した事により一気に改善への糸口が見つかりました。
そのため人間が原因調査するより、まずは分析用ログを出力しAIに提供した方が作業効率が高いと感じました。
分析用ログ出力コード自体もAI自身にコーディングしてもらうと良いですね。
これによりAIの利点である個人の経験・知識に依存しない・問題特定の速度が速いという点がより活かせる事がわかりました。
まとめ
パフォーマンス改善などの負債解消は難易度が高いですし、目に見えた改善がないため後周りになりがちですが
システムの安定稼働、適切なマシンパフォーマンス設定が可能になります。
AIを利用し解決へのプロセスが短縮する事により改善が容易になっていると感じました。
今後も手法を改善しながらAIとの協働によりプロダクト改善を行なって行きたいと思います。