weblog2015-11-14AndroidのORMに求めること、あるいはOrmaを開発した話Android用ORMライブラリを書き始めました。2.xが爆速になっており、GreenDAOに匹敵するレベルになっていそうです。ORM武闘会の2015年版が望まれます。本題ですが、私がAndroidのORMに求めるものは下記のようなものです。YAMLはありかもしれないが補完が効かないのはつらいこの条件を満たすORMがありません。methodだし、ActiveAndroidは遅すぎます。そこで、これらをすべて満たしたORMとしてOrmaを開発することにしたのでした。現状、migration以外はだいたい実装できてます*1。content;}あとはOrmaDatabaseを通じて操作します。"orma.db");操作はすべてこのormaインスタンスを通じて行います。patternを実装していません。insertもできます。みたいなメソッドがモデルごとに生成されます。できると最高なんですが、それはかなり難しい*2のでおそらくやりません。.toList();updateとdeleteも自動生成されたクラス経由で行います。.execute()migrationができるようになるまでは実用的ではありませんが、現状そこそこ使えます。Realmではselectクエリを発行してませんでした。正しく測りなおしたらRealmとOrmaはほぼおなじ速度でした。Ormaのベンチマーク、Realmのコードでクエリ発行してなかった。直したらOrmaとRealmはほぼ同じ速度になった。2015よって以下は古い情報です。DBFlowとRealmを相手にベンチマークもとってみました。10,000件のinsertと、10,000件のselectです*3。insertは三つとも横並びで、実行するたびに順位が入れ替わる程度です。SQLiteベースでもRealmに匹敵する速度は出せるということですね。これは何度か実行してもこの順番です。これはさすがにRealmの面目躍如といったところですし、SQLiteベースでこれ以上の速度は難しいでしょう。いえ、insertで20,000qps*4、selectAllで70,000qpsでているので三者とも十分な速度はでていると思います。v3.0.0-rc2をリリースしました。11はてなブログをはじめよう!gfxさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。