You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "David Smiley (JIRA)" <ji...@apache.org> on 2017/12/29 23:55:00 UTC
[jira] [Created] (SOLR-11805) SolrRequest elapsedTime is not
computed correctly (premature millisecond conversion)
David Smiley created SOLR-11805:
-----------------------------------
Summary: SolrRequest elapsedTime is not computed correctly (premature millisecond conversion)
Key: SOLR-11805
URL: https://issues.apache.org/jira/browse/SOLR-11805
Project: Solr
Issue Type: Improvement
Security Level: Public (Default Security Level. Issues are Public)
Reporter: David Smiley
Priority: Minor
_(this is not QTime, this is what the SolrJ client request duration is captured as)_
This is what {{SolrRequest.process}} looks like:
{code:java}
long startTime = TimeUnit.MILLISECONDS.convert(System.nanoTime(), TimeUnit.NANOSECONDS);
T res = createResponse(client);
res.setResponse(client.request(this, collection));
long endTime = TimeUnit.MILLISECONDS.convert(System.nanoTime(), TimeUnit.NANOSECONDS);
res.setElapsedTime(endTime - startTime);
return res;
{code}
The millisecond conversion should be delayed to the very end, otherwise it could yield a time duration of a millisecond greater than it deserves. Also, it's better to put the unit into the variable name. Also, note the convenience methods on TimeUnit like "toMillis". Here's what this should look like:
{code:java}
long startNanos = System.nanoTime();
T res = createResponse(client);
res.setResponse(client.request(this, collection));
long endNanos = System.nanoTime();
res.setElapsedTime(TimeUnit.NANOSECONDS.toMillis(endNanos - startNanos));
return res;
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org