Me acaban de perfiles de algún código de la subasta en la que algunos contadores de frecuencia con el siguiente código:¿Existe un buen patrón para reutilizar las consultas de 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);
La creación de la consulta tarda casi el 50% del tiempo de ejecución, y me gustaría volver a utilizar el trabajar de alguna manera. ¿Es seguro guardar los objetos query
y ops
en un ThreadLocal y simplemente llamar al query.field("text").equal(text)
nuevamente para reemplazar el campo "texto"? También parece que la validación ocupa aproximadamente el 30% del tiempo total.