テストごとに新しい状態を。検索engineは起動し直さない。
Section titled “テストごとに新しい状態を。検索engineは起動し直さない。”seed済みbaseを共有し、読み取り専用テストは直接検索できます。document、mapping、indexの状態を変えるテストには専用のcopy-on-write forkを渡します。テストが変更するindexだけが複製されます。
seed済みtest環境の起動時間
各経路の平均。osmemは525-byte seedを読み込みreadyになるまで、container系はwarm imageからPUT /benchmark成功まで。
server起動中のmemory
Docker rowはDocker報告のcontainer memory。Testcontainersはdata pathに1GiB tmpfsを使い、Go runnerのRSS増分だけを加算。
変更テスト用cloneの生成時間
構築済みの日本語有効indexをforkする時間。writeやcloseは含めません。
同日にroute table cache化の修正が入り、Go組み込みのClone()はこのページで過去最速になりました。詳細は性能ページを参照してください。
link後binaryと初回downloadのfootprint
10進MBの同一scale。barは別々の対象を表し、package全体の同種比較ではありません。
2026-09-16に再計測しました。OpenSearch 3.8互換性修正と2つの性能改善(in-memory segment merge、typedなtop-K sort実行)を経た後の値です。before/afterは計測ページを参照してください。起動グラフはGo組み込みの日本語無効/有効を比較します。有効時はseedに含むkuromoji analyzerの初期化も含み、525-byte seedに対するNew()+LoadSeed()を計測しています。Python・Java・Node.js SDKの起動値と範囲は計測ページにまとめました。cloneはGo 5,000回×5、SDK各300回で生成のみ計測。Devboxはprocess-compose経由で同じDocker-backed OpenSearchを起動し、初回downloadのMaven/JDK環境はserver imageと別です。container imageは取得済み。Testcontainersはdata pathに1GiB tmpfsをmountし、初回trialでRyukを起動。Docker報告のcontainer memoryはdaemonを除外し、Testcontainers Goは起動前からのrunner RSS増分を加算しています。ready条件が異なるため、厳密なengine比較ではなくローカルの経路比較です。