Существует ли хороший шаблон для повторного использования запросов 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)для замены поле "текст"? Также похоже, что проверка занимает около 30% от общего времени.

5
задан Eyal 17 May 2012 в 04:55
поделиться