5
私はちょうど私が次のコードで、いくつかの周波数カウンタをインクリメントするいくつかのコードをプロファイリングしてきた:Morphiaのクエリを再利用するための良いパターンはありますか?
Datastore ds = ...
final Query<Unit> query = ds.createQuery(Unit.class);
query.field("text").equal(text);
query.field("langCode").equal(lang.getCode());
UpdateOperations ops = ds.createUpdateOperations(Unit.class);
ops.inc("frequency", value);
ds.update(query, ops, false);
クエリの作成が実行時間のほぼ50%を取り、私は再利用したいのですが何とか働く。 query
とops
のオブジェクトをThreadLocalに保存して、query.field("text").equal(text)
をもう一度呼び出して "text"フィールドを置き換えても安全ですか?検証では合計時間の約30%を占めるように見えます。