ANTIGRAVITY LABEN
記事一覧/Tips & 活用術
Tips & 活用術/2026-06-16上級

Go 製 Antigravity CLI の応答性を実測して、夜間バッチの組み方を見直す

Antigravity CLI は Go で実装し直され、起動や初回応答の体感が変わりました。起動・初回応答・本処理の3つの時間を切り分けて実測し、その数字をもとに夜間バッチを直列から並列へ組み直すまでの手順をまとめます。

antigravity362cli3automation32benchmark2tips34

プレミアム記事

6/18 に Gemini CLI と Gemini Code Assist の IDE 拡張が個人向けの提供を終了し、後継の Antigravity CLI へ移行する、という案内が出ています。私自身、個人開発で複数のサイトの自動投稿を夜間にまとめて回しているので、締切の少し前に移行先を試しておこうと CLI を入れ替えてみました。

入れ替えて最初に気づいたのは、起動が明らかに速くなっていることでした。Antigravity CLI は Go で実装し直されています。旧 Gemini CLI は Node ベースだったので、プロセスの立ち上がりにかかる時間がそもそも違います。ただ「速くなった気がする」だけでバッチの組み方を変えるのは危ういので、まず数字にすることにしました。この記事は、その実測と、数字を見てから夜間バッチをどう組み直したかの記録です。

「速い・遅い」を語る前に、3つの時間を分ける

CLI を自動化に載せて遅いと感じるとき、原因は大きく3つに分かれます。これを混ぜて1つの数字にしてしまうと、改善の打ち手を間違えます。

  • 起動時間(cold start): プロセスが立ち上がり、設定の読み込みと認証の初期化が終わるまで。コマンドを投げてから「受け付けた」状態になるまでの時間です。
  • 初回応答時間(time to first token): リクエストを送ってから、モデルの最初の出力が返り始めるまで。ネットワークとモデル側のキューイングが効いてくる区間です。
  • 本処理時間(throughput): 最初のトークンが出てから、応答が完結するまで。出力が長いほどここが支配的になります。

旧 CLI で「夜間バッチが遅い」と感じていた原因が起動時間なのか本処理なのかで、対策はまったく変わります。起動が重いなら投げる回数を減らす(=まとめる)べきですし、本処理が重いなら出力を短く区切るか、並列に流すべきです。区間を分けずに総時間だけ見ていると、この判断ができません。

ヘッドレス実行でベンチマークを取る

Antigravity CLI には非対話(ヘッドレス)実行があり、プロンプトを引数で渡して結果を標準出力に流せます。これがベンチマークの土台になります。対話モードのまま計測すると、TTY の有無で出力の出方が変わって数字が安定しないので、必ず非対話で計測します。

まず、起動だけを測る最小コマンドを用意します。--version のような即座に返るサブコマンドは、本処理を含まない「起動 + 終了」だけの時間を返してくれるので、cold start の指標になります。

#!/usr/bin/env bash
# bench_startup.sh — 起動時間だけを N 回測って中央値を出す
# 本処理を含まない --version を使うことで cold start を切り出す
set -euo pipefail
 
CMD="${1:-antigravity}"   # 旧CLIと比べるときは引数で gemini を渡す
N="${2:-20}"
 
times=()
for i in $(seq 1 "$N"); do
  start=$(date +%s.%N)
  "$CMD" --version >/dev/null 2>&1
  end=$(date +%s.%N)
  times+=("$(echo "$end - $start" | bc)")
done
 
# 中央値(外れ値に強い)を出す。平均はウォームアップの影響を受けやすい
printf '%s\n' "${times[@]}" | sort -n | awk '
  { a[NR]=$1 }
  END {
    if (NR % 2) print "median:", a[(NR+1)/2];
    else        print "median:", (a[NR/2] + a[NR/2+1]) / 2;
    print "min:", a[1], "max:", a[NR];
  }'

平均ではなく中央値を出しているのには理由があります。最初の数回はファイルキャッシュやネットワーク接続の確立で遅くなりがちで、平均はその影響を強く受けます。バッチを設計するときに知りたいのは「ふだん何秒で立ち上がるか」なので、外れ値に強い中央値のほうが判断に使えます。

次に、初回応答と本処理を分けて測ります。CLI が応答をストリーミングで流す場合、標準出力に最初の1バイトが届いた時刻を記録すれば、初回応答と本処理の境目が取れます。

#!/usr/bin/env bash
# bench_response.sh — 初回応答と本処理を分けて測る
# 標準出力の最初の1行が出た時刻で区間を分割する
set -euo pipefail
 
CMD="${1:-antigravity}"
PROMPT="${2:-200文字程度で、ベンチマーク用のダミー文章を書いてください}"
 
start=$(date +%s.%N)
first_token=""
 
# run --print は非対話でプロンプトを実行し結果を標準出力へ流す想定
"$CMD" run --print "$PROMPT" 2>/dev/null | while IFS= read -r line; do
  if [ -z "$first_token" ]; then
    first_token=$(date +%s.%N)
    echo "ttft: $(echo "$first_token - $start" | bc)s"
  fi
done
 
end=$(date +%s.%N)
echo "total: $(echo "$end - $start" | bc)s"

ここでのポイントは、while read の中で最初の行が来た瞬間に時刻を打っていることです。最後にまとめて出力を受け取る書き方だと、ストリーミングであっても初回応答の時刻を取り逃します。CLI のサブコマンド名(run --print など)はバージョンによって変わるので、手元の antigravity --help で実際の非対話実行オプションを確認してから合わせてください。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
旧 Gemini CLI のまま夜間バッチを回していて「どこが遅いのか」を掴めなかった人が、起動・初回応答・本処理の3区間を切り分けて実測できるようになります
ヘッドレス実行を使った再現可能なベンチマークハーネスを手元に持ち帰り、自分の自動化にそのまま当てられます
実測値をもとに『直列で回すか、時間帯を分けて並列にするか』というバッチ設計の判断を、感覚ではなく数字で下せるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Tips & 活用術2026-06-14
Antigravity CLI に乗り換えて「速くなった気がする」を、hyperfine で数値にする
Go 製になった Antigravity CLI の起動が速い、という体感を hyperfine で再現可能な数値に落とし込みます。ウォーム/コールドの測り分け、スケジュール実行での積み上がり、回帰を防ぐ CI ゲートまで。
Tips & 活用術2026-06-13
Antigravity 2.0 のライブ音声書き起こしで、手を止めずに指示を出してみた
Antigravity 2.0 に追加された Gemini Audio ベースのライブ音声書き起こしを、実際のコーディングで一週間使ってみました。外部ディクテーションツールとの違い、技術用語と日本語混じりの精度、向いている使い方を率直に整理します。
Tips & 活用術2026-05-27
Antigravity 内蔵ターミナルで日本語が文字化けするときの原因と対処
Antigravity の内蔵ターミナルで `git log` や `npm` の出力、ファイル名に含まれる日本語が「譁?ュ怜喧縺」のような文字列になってしまう。Windows / macOS / WSL それぞれの典型パターンを、原因別の最短手順で直していきます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →