データベースブラウザをインストールすると、アクティビティモニタはファイルを1つも開いていないうちから350MBものRAMを使用していることを明らかにします。アプリの起動には数秒かかり、テーブルのスクロールはカクつき、インターフェースは他のMacアプリとは合いません。これがElectronやJavaベースのデータベースツールの代償です——実際に何をしているかに関わらず、独自の描画エンジン、独自のUIフレームワーク、独自のメモリオーバーヘッドを持ち込んでくるのです。
なぜデータベースブラウザは不必要に重いのか
Electronアプリは、インターフェースを描画するためにChromiumブラウザ丸ごとを同梱しています。主にデータのテーブルを表示するだけのアプリであるデータベースブラウザにとって、これはデスクランプ1つを灯すためにディーゼル発電機を持ち込むようなものです。DBeaverなどのツールはJava上で動作しており、JVMの起動ペナルティ、ガベージコレクションによる一時停止、時間とともに増大するメモリ使用量を伴います。どちらのアプローチも、効率よりもクロスプラットフォーム対応を優先しています。
macOS上では、このオーバーヘッドは特にもどかしいものです。なぜならOS自体が、データベースブラウザが必要とするものをすでにすべて提供しているからです——ネイティブなテーブルビューのためのAppKit、描画のためのCore Graphics、そしてダークモード、タブ、ウィンドウ管理への組み込みサポートです。これらのフレームワークを直接使用するデータベースブラウザは、独自のプラットフォームを持ち込むものに比べて、サイズはごくわずかで、劇的に高速になり得ます。
Tome:あなたのリソースを尊重するデータベースブラウザ
TomeはSwiftとAppKitで構築されています——Electronも、Javaも、ウェブビューもありません。FinderやPreviewと同じネイティブフレームワークを使用しており、その結果、瞬時に起動し、メモリを軽量に保ち、Macにふさわしいと感じられるアプリになっています。
1秒未満での起動
JVMの初期化も、Chromiumの起動もありません。Tomeは、ほとんどのElectronアプリがスプラッシュ画面を表示するのにかかる時間よりも速く開きます。Dockアイコンをクリックすれば、ほぼ即座にデータベースを閲覧できる状態になります。
最小限のメモリフットプリント
ネイティブなAppKitのテーブルビューは、ウェブベースのグリッドが消費するであろうメモリのごく一部で、何千行もの表示を描画します。Xcode、VS Code、ブラウザと並べてTomeを開いておいても、リソースを奪い合うことはありません。
フル機能を、コンパクトなパッケージで
軽量であることは、機能が制限されていることを意味しません。Tomeには、SQLite作業に必要なものがすべて揃っています。テーブル、ビュー、インデックス、トリガーの閲覧。データのインライン編集。行の挿入・削除。ビジュアルなテーブル作成。シンタックスハイライトとオートコンプリート付きのSQLクエリ実行。これらすべてが、Macのリソースを大切に扱うアプリの中にあります。