首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wicket数据提供程序查询/搜索时间

Wicket数据提供程序查询/搜索时间
EN

Stack Overflow用户
提问于 2013-02-04 12:23:40
回答 2查看 625关注 0票数 1

我使用DataTable在Wicket中显示(Lucene)搜索结果。Datatable使用IDataProvider填充工具栏和单元格。

我试图找出执行查询所需的时间。一个典型的查询需要调用

  • size(...)
  • iterator(...)
  • model(..)

计算这些方法花费的时间的好方法是什么?我可以在每个调用中实现像System.currentTimeMillis()这样的东西,但是在什么地方可以这样做呢?

而且,我想在工具栏中显示这一次,所以我应该确保“数据处理”部分何时完成。有什么暗示吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-04 18:21:19

如果有的话,我将测量iterator()方法中的时间。除非你真的有一个大清单和时间的size()是重要的,我想说,这是足够的。我看不出有什么方法可以给出在iterator()方法中测量到的执行时间。

我知道有这样的东西:http://ci.apache.org/projects/wicket/apidocs/6.0.x/org/apache/wicket/devutils/inspector/RenderPerformanceListener.html,但我从未使用过它。

您还可以尝试连接到RequestCycle。有一个方法getStartTime() http://ci.apache.org/projects/wicket/apidocs/6.0.x/org/apache/wicket/request/cycle/RequestCycle.html#getStartTime()。你可以用onEndRequest()结束测量。

还有RequestCycle的侦听器。http://ci.apache.org/projects/wicket/apidocs/6.0.x/org/apache/wicket/request/cycle/IRequestCycleListener.htmlonBeginRequestonEndRequest方法。也许这个能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2013-02-08 16:11:06

由于您实际上并不测量DataProvider,而是返回结果的Lucene方法,所以我宁愿在数据提供者调用的方法中记录时间(假设有类似于搜索服务类的东西)。

作为一个优势,其他DataProviders调用相同的方法也将被测量,而不触及它们。也许还有一个更中央的地方可以放它?每一个搜索请求都必须经过的单一方法?

就我个人而言,我喜欢StopWatch阿帕奇公域朗库,它是相当自我解释使用。然而,如果您已经不需要库,否则,它可能会有点过大,添加它只是为了时间测量。currentTimeMillies的工作也很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14686739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档