[
https://issues.apache.org/jira/browse/KAFKA-1359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13974561#comment-13974561
]
Guozhang Wang commented on KAFKA-1359:
--------------------------------------
I did a small benchmark on my mac laptop and linux desktop:
{code}
public class NanoVsMillis {
public static void main(String[] args) {
int count = 10 * 1000 * 1000;
long[] times = new long[count];
long t1 = System.nanoTime();
for (int i = 0; i < count; i++) {
times[i] = System.nanoTime();
}
long t2 = System.nanoTime();
for (int i = 0; i < count; i++) {
times[i] = System.currentTimeMillis();
}
long t3 = System.nanoTime();
System.out.println("Total time nano : " + ((t2 - t1) / (1000 * 1000))
+ "ms");
System.out.println("Total time millis: " + ((t3 - t2) / (1000 * 1000))
+ "ms");
System.out.println("");
System.out.println("Avg time nano : " + ((t2 - t1) / count) + "ns");
System.out.println("Avg time millis: " + ((t3 - t2) / count) + "ns");
}
}
{code}
On the mac laptop, since "the QueryPerformanceCounter/
QueryPerformanceFrequency API is available, nanoTime actually returns
currentTimeMillis\*10\^6). ", the results are
{code}
Total time nano : 366ms
Total time millis: 354ms
Avg time nano : 36ns
Avg time millis: 35ns
{code}
On the linux machine, the results are
{code}
Total time nano : 520ms
Total time millis: 470ms
Avg time nano : 52ns
Avg time millis: 47ns
{code}
So I think nanoTime will be a bit more expensive than millis on the linux box.
If millis' accuracy is sufficient for us, maybe we should switch from nano?
> Add topic/broker metrics once new topic/broker is discovered
> ------------------------------------------------------------
>
> Key: KAFKA-1359
> URL: https://issues.apache.org/jira/browse/KAFKA-1359
> Project: Kafka
> Issue Type: Sub-task
> Components: producer
> Reporter: Guozhang Wang
> Assignee: Guozhang Wang
> Fix For: 0.8.2
>
> Attachments: KAFKA-1359.patch, KAFKA-1359_2014-04-10_10:11:40.patch,
> KAFKA-1359_2014-04-11_14:20:45.patch, KAFKA-1359_2014-04-16_09:53:55.patch
>
>
> Today some topic/broker level metrics are only added the first time such an
> event (record-retry, record-error, etc) happens. This has a potential issue
> for customized mbean reporter which needs to register all the sensors at the
> time the new broker/topic is discovered. It is better to add such metrics at
> the very beginning when new topic/brokers are discovered.
--
This message was sent by Atlassian JIRA
(v6.2#6252)