DEV Community 日本語
フォロー
あなたの codex exec は 1 ターンあたり約 900 ms を無駄にしています。どこで無駄にしているか測定しました。
著者はBunを使用してOpenAIのCodex CLI JavaScriptハーネスを再構築し、実行時パフォーマンスの向上だけでなく、アーキテクチャ上の改善を発見しました。CodexエンジンはRustコアとJavaScriptレイヤーで構成されており、後者がBunに置き換えられました。新しいクライアントが導入され、単一のCodexアプリサーバープロセスを維持し、繰り返しの起動を回避しました。ベンチマークにより、永続的なプロセスは、各ターンで新しいプロセスを起動する場合と比較して実行時間を大幅に短縮することが明らかになりました。驚くべき発見は、Codexのリリースビルドがテレメトリエクスポーターを有効にし、メトリクスをアップロードするためにプロセスシャットダウン時間に約900ミリ秒を追加することでした。新しいプロセスが起動されるたびに、このオーバーヘッドが発生します。設定ファイルでメトリクスエクスポーターを「none」に設定するという簡単な設定変更により、コードを変更せずにこの遅延を解消できます。永続プロセスアーキテクチャによるパフォーマンス向上は、JavaScriptランタイムに依存しないものであり、Node.jsでも同様の結果が得られました。Bunの利点は主にツールチェーンに見られ、テストの起動時間とインストール時間を大幅に短縮しました。生成されたプロトコル型による初期のパッケージサイズの増加は、宣言を単一ファイルに統合することで対処されました。この取り組みにより、より小さく最適化されたパッケージが実現しました。記事全体では、図やさらなるベンチマークを含む技術的な詳細をさらに掘り下げています。コードとデモはGitHubで入手可能です。