ストレージテスト
ブラウザの利用可能なストレージクォータを確認し、localStorageの容量とIndexedDBの読み書きスループットを自動クリーンアップ機能付きで測定します。
Storage quota
navigator.storage.estimate() is not available in this browser, so quota cannot be shown.
Read/write benchmark
Tests localStorage capacity and latency, then IndexedDB throughput. Everything written is deleted automatically afterward.
ストレージテスト のクイックガイド
1分未満で完了- 1「Run benchmark」をクリックして一時的なテストペイロードを書き込み、読み込んでください。
- 2localStorageとIndexedDBの結果を比較してください。
- 3Quotaは、ブラウザがこのサイトに保存を許可する容量を示します。
- 4テスト中に書き込まれたものはすべて、テスト終了時に削除されます。
概要
ブラウザは単にページをレンダリングするだけでなく、サイトが設定を記憶したり、オフラインで使用するためにデータをキャッシュしたり、同じ情報を繰り返し再ダウンロードするのを避けるために、データをローカルに保存します。このローカルストレージは、それぞれ異なるサイズ制限と速度特性を持ついくつかの異なるシステムに存在し、このテストでは最も一般的な2つ、localStorageとIndexedDBを直接測定します。
ページはまずnavigator.storage.estimate()を呼び出します。これは、このサイトが現在使用しているストレージ量と、全体で許可されているおおよその使用量を報告する標準のブラウザAPIです。そこから、ベンチマークを実行すると、localStorageに少量のテストデータを書き込み、その実用的な容量制限を見つけて書き込みと読み取りのレイテンシを測定し、その後、より大きなレコードセットをIndexedDBに書き込み、メガバイト/秒単位のスループットを測定します。テスト中に書き込まれたすべてのバイトは、ベンチマークが完了すると自動的に削除されます。
これらの数値を理解することは、思っている以上に重要です。ローカルストレージが遅いと、メールクライアント、メモアプリ、プログレッシブウェブアプリなど、オフラインキャッシュに依存するウェブアプリが、データの保存や同期時に動作が鈍く感じられることがあります。ネットワーク接続とCPUが速い場合でも同様です。
結果の読み方
ストレージクォータバー
このバーは、推定クォータのうち、このサイトが具体的に現在使用している量を示しており、ブラウザ全体やデバイスの使用量ではありません。ほとんどのサイトでは、大量のデータをローカルに保存する必要がないため、大きなクォータに対して使用量が少ないのが通常です。
localStorageの容量とレイテンシ
ほとんどのブラウザはlocalStorageをサイトごとに5MBから10MBに制限しているため、容量テストがこの範囲で停止しても問題の兆候ではありません。書き込みおよび読み取りのレイテンシは、操作あたりのミリ秒で測定されます。localStorageは同期であるため、各書き込みが完了するまでページが一時停止します。そのため、サイトがlocalStorageを過度に使用すると、ここでレイテンシが高くなり、ページの応答性が低下する可能性があります。
IndexedDBスループット
これらの数値はメガバイト/秒で報告され、ブラウザがより大きなデータチャンクをデータベースレイヤーにコミットし、それを読み戻す速度を反映しています。数値が速いほど、ローカルキャッシング、オフラインサポート、またはクライアント側での大容量ファイルの保存に依存するウェブアプリにおいて、よりきびきびとした体験が得られます。
トラブルシューティング
テストがすぐにエラーで失敗します
これは通常、IndexedDBがブロックまたは制限されていることを意味します。これはプライベートブラウジングウィンドウやシークレットウィンドウでよく発生するか、プライバシーのためにブラウザ拡張機能がストレージAPIを積極的にブロックしている場合に起こります。通常のブラウジングウィンドウでテストを実行し、問題が解決しない場合は厳格なプライバシー拡張機能を一時的に無効にしてみてください。
クォータがサポート対象外と表示されます
navigator.storage.estimate()はすべてのブラウザで利用できるわけではなく、このサイトがすでに使用しているセキュアなコンテキスト (HTTPS) を必要とします。まだサポートされていない場合は、お使いのブラウザのバージョンがこのAPIよりも古い可能性があります。最新バージョンに更新することで通常は解決します。
テストがデータを残したままになっていないか心配です
ブラウザの開発者ツールを開き、「Application」または「Storage」タブに移動して、このサイトのlocalStorageとIndexedDBのエントリを確認してください。クリーンアップ手順は、テストが成功するたびに自動的に実行され、IndexedDBデータベースとlocalStorageテストキーを明示的に削除するため、完了した実行後には何も残らないはずです。
localStorage 対 IndexedDB、平易な言葉で
localStorageは2つのうちより単純な方です。文字列のみを保存し、すべての操作は同期(つまり、完了するまでページが待機してから続行する)であり、どのブラウザでも厳格なサイズ上限があります。テーマ設定やログイントークンなどの小さなものには適していますが、より大きなものやパフォーマンスに敏感なものには不向きです。
IndexedDBは適切なクライアントサイドデータベースです。バイナリBlobを含む構造化データを保存し、非同期で動作するため、読み書き中にページをブロックせず、利用可能なディスク容量とブラウザポリシーに応じて、多くの場合数百メガバイト以上の大量のデータをサポートします。ほとんどの現代的なオフライン対応ウェブアプリは、まさにこの理由からIndexedDBを使用しています。
- localStorageは、数キロバイト以下の小さな単純な値にのみ使用してください。
- より大きく、構造化された、またはパフォーマンスに敏感なものにはIndexedDBを使用してください。
- どちらもクッキーとは別物です。クッキーはすべてのネットワークリクエストとともに送信され、それぞれ独自のより小さな制限があります。
ストレージ速度に影響するもの
基盤となるディスクの種類は重要であり、SSDはこのようなランダムな小規模書き込みワークロードにおいて、一般的に機械式ハードドライブよりも優れたパフォーマンスを発揮しますが、それだけが唯一の要因ではありません。ブラウザ自身のストレージエンジン、現在のディスクの空き容量、ディスク暗号化が有効かどうか、さらには同時にストレージを読み書きしている他のタブの数も、ここで表示される数値に影響を与えます。
特定のウェブアプリがデバイスのせいで遅いのか、それともアプリ自体のせいで遅いのかを診断しようとしている場合、このサイトのCPUおよびメモリベンチマークと並行してこのテストを実行すると、より全体像を把握できます。3つのすべてで高いスコアを出しているにもかかわらず、特定のアプリがまだ遅いデバイスは、ハードウェアではなく、そのアプリのコードに問題がある可能性が高いです。
よくある質問
このテストは私のハードドライブまたはSSDの速度を直接測定しますか?
いいえ、これはブラウザが自身のストレージシステム(localStorageとIndexedDB)に対して書き込みと読み取りをどの程度速く行えるかを測定します。これらのシステムは、オペレーティングシステムのファイルシステムとブラウザのストレージエンジンの上に位置しています。実際のディスク速度は結果に影響を与えますが、ブラウザ自身のオーバーヘッドも影響するため、専用のディスクベンチマークツールと数値は一致しません。
このテストを実行するとストレージがいっぱいになったり、ファイルが残ったりしますか?
いいえ。このテストは、一般的に数メガバイト程度の小さな固定量のテストデータを書き込み、終了時にはlocalStorageとIndexedDBの両方から作成されたすべてを削除する明示的なクリーンアップステップが含まれています。これは、実行前後に開発者ツールでブラウザのストレージ使用量を確認することで確認できます。
navigator.storage.estimate()は実際に何を教えてくれますか?
これは、このサイトが現在使用しているおおよそのストレージ量と、利用可能なクォータのおおよその量を報告します。どちらも設計上、正確な数値ではなく推定値です。ブラウザは意図的にこれらの数値を丸め、サイトが利用可能なディスクスペースをどの程度正確にフィンガープリントできるかを減らしています。
私のlocalStorageの容量が数メガバイトに制限されているのはなぜですか?
localStorageには、利用可能な空きディスク容量に関わらず、主要なすべてのブラウザでサイトごとの上限がハードコードされており、通常は5~10 MBです。これはlocalStorageが導入された当初からの意図的な設計上の制限であり、大規模なデータストレージではなく、小さな設定やトークンに利用できるようにすることを目的としています。
IndexedDBのスループットがlocalStorageのスループットと異なるのはなぜですか?
IndexedDBは大量の構造化データ向けに設計されており、適切なデータベースエンジンに支えられた非同期トランザクションを使用します。一方、localStorageは同期式で、すべてをプレーンな文字列として保存します。IndexedDBは通常、より大きなペイロードに対してはるかに高速であり、同じような厳しいサイズ上限はありません。
私のクォータが数百ギガバイトのような巨大な数字を示しています。これは本当ですか?
ブラウザは利用可能なディスク容量と内部ポリシーに基づいた理論上のクォータを報告しますが、実際には、許可を求めたり追加の制限を適用したりすることなく、1つのサイトにそれほどの容量を実際に使用させることはほとんどありません。クォータの数値は、すべてをすぐに使用できるという保証ではなく、上限として捉えてください。
プライベート/シークレットモードでストレージテストが失敗したりエラーが表示されたりしたのはなぜですか?
多くのブラウザでは、プライバシー保護の観点から、プライベートブラウジングモードでIndexedDBのような永続ストレージAPIを制限または完全に無効にしたり、操作間で積極的にクリアしたりします。正確なストレージテストが必要な場合は、代わりに通常のブラウジングウィンドウでこのテストを実行してください。
ブラウザのキャッシュをクリアすると、これらの結果に影響しますか?
キャッシュのクリアだけでは通常、localStorageやIndexedDBには影響しません。これらはHTTPキャッシュとは別に保存されています。このサイトの「サイトデータ」または「Cookieとその他のサイトデータ」を具体的にクリアした場合、localStorageおよびIndexedDBのコンテンツが削除され、空の状態から開始することで、新しいベンチマークの数値がごくわずかに変化する可能性があります。
書き込み速度が読み込み速度よりも遅くなることがあるのはなぜですか?
書き込みは通常、読み込みよりも多くのオーバーヘッドを伴います。ブラウザはデータを安全に永続化する必要があり、ブラウザがクラッシュした場合のデータ損失を防ぐために、ディスクや先行書き込みログにフラッシュすることがあります。読み込みは、メモリ常駐キャッシュからより高速に提供されることがよくあります。
ストレージスコアが低いのは、ドライブが故障している兆候ですか?
それだけではそうではありません。ブラウザのストレージ速度は物理ディスクより上位の多くのソフトウェア層に影響されるため、ここでの低いスコアはドライブの健全性を示す信頼できる指標ではありません。ドライブの故障を疑う場合は、代わりにオペレーティングシステムに内蔵されたディスク健全性ツール(SMARTステータスなど)を使用してください。
このテストを使って、ウェブサイトがオフライン機能をうまく実行できるかどうかを確認できますか?
それは妥当な目安になります。プログレッシブウェブアプリやオフライン対応サイトは、ローカルでデータをキャッシュするためにIndexedDBに大きく依存しているため、健全なIndexedDBの書き込みおよび読み取りスループットを持つデバイスであれば、オフライン対応ウェブアプリをスムーズに処理できるでしょう。