Skip to content

原文(日本語に翻訳)

パフォーマンス改善:SSE トランスポートが大容量のストリームフレームを線形時間で処理するようになった(以前は二次時間)

原文(英語)

Improved performance: SSE transport now handles large streamed frames in linear time (was quadratic)

概要

SSE(Server-Sent Events)トランスポートが大容量のストリームフレームを処理する際のアルゴリズムが、二次時間(O(n²))から線形時間(O(n))に改善されました。これにより、大きなレスポンスをストリーミングする際のパフォーマンスが大幅に向上します。特に長い出力(大量のコード生成、大きなファイルの処理など)で顕著な改善が見られます。

基本的な使い方

修正内容はパフォーマンス最適化のため、v2.1.90 にアップデートするだけで恩恵を受けられます:

bash
# v2.1.90以降: 大容量出力のストリーミングが高速化
claude
# 大きなコード生成や長いレスポンスが以前より速く表示される

実践例

大量コード生成での改善

大規模なコードベース生成時の改善:

bash
# 例: 大量のコードを生成するタスク
claude "RESTful APIの完全な実装を生成して。エンドポイント、モデル、テスト、ドキュメントを含めて"

# v2.1.90以降:
# - 長いコード出力のストリーミングが線形時間で処理される
# - 以前は出力が長くなるほど指数的に遅くなっていた

大きなファイルの分析

大きなファイルを処理する際の改善:

bash
# 大きなログファイルやコードファイルの分析
claude "このファイルを分析して詳細なレポートを作成して"

# v2.1.90以降:
# - 大きなレスポンスが以前より速くストリーミング表示される

APIを通じた大容量出力

Claude Code SDK やAPIを使用した大容量出力:

python
import anthropic

client = anthropic.Anthropic()

# v2.1.90以降: 大きなストリームフレームの処理が大幅高速化
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=8192,  # 大きなレスポンス
    messages=[{"role": "user", "content": "詳細な技術文書を生成して..."}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

注意点

  • この改善は特に大容量のストリームフレームで顕著な効果があります
  • 短いレスポンスでは改善の実感が薄い場合があります
  • SSEトランスポートを使用している環境(Webベースのインターフェースなど)で特に効果的です
  • O(n²)からO(n)への改善は、データサイズが2倍になった場合に4倍ではなく2倍の時間になることを意味します

関連情報