5

我刚刚分析了一些代码,其中我使用以下代码增加了一些频率计数器:

   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% 左右。

4

1 回答 1

3

是的,你可以这么做。每个字段都存储在地图中,因此在多次调用时它将替换它。

于 2012-03-05T19:43:58.753 回答