我想计算一下邮联履行我的职责在 Java执行的时间。 目前,我的工作如下。
long startTime = System.currentTimeMillis();
myfunction();
long endTime = System.currentTimeMillis();
long searchTime = endTime - startTime;
但我发现,对于同一个I/PI,视系统负荷不同,时间不同。
因此,我如何履行我的职责。
我想计算一下邮联履行我的职责在 Java执行的时间。 目前,我的工作如下。
long startTime = System.currentTimeMillis();
myfunction();
long endTime = System.currentTimeMillis();
long searchTime = endTime - startTime;
但我发现,对于同一个I/PI,视系统负荷不同,时间不同。
因此,我如何履行我的职责。
随着联合选举机制加快了所花费的时间,时间将有所不同。 你第二次这样做,总是比第一次快。 (第一次必须装上班级,用固定区块标示) 在你操作了10 000次方法之后,将再次加快速度(在设定的门槛值下,该门槛值将代码编成本地机器编码)。
为了获得微型基准的可再生平均时间,我建议你忽视头10 000英亩,然后将它管理到2至10秒。
e.g.
long start = 0;
int runs = 10000; // enough to run for 2-10 seconds.
for(int i=-10000;i<runs;i++) {
if(i == 0) start = System.nanoTime();
// do test
}
long time = System.nanoTime() - start;
System.out.printf("Each XXXXX took an average of %,d ns%n", time/runs);
非常重要: 这种方法只有一种。 这是因为它根据使用的方法选择了整个方法。 如果你有一个像这样繁忙的休息室,那么,由于他们没有运行,而且选择不好,以后的休息时间会比较缓慢。
System.currentTimeMillis()
will only ever measure wall-clock time, never CPU time.System.nanoTime()
is often more precise (and never worse) than currentTimeMillis()
.ThreadMXBean.getThreadCPUTime()
can help you find out how much CPU time a given thread has used. Use ManagementFactory.getThreadMXBean()
to get a ThreadMXBean
and Thread.getId()
to find the id
of the thread you re interested in. Note that this method need not be supported on every JVM!缩略语的正确方法是了解和使用Java micobenchmark Building (JMH),该软件由开放式12K. 对“java jmh”的搜索将产生与一些有用的指导。 我喜欢Jakob Jenkov s blog post,当然还有Aleksey Shipilëv,他是JMH的主要开发商和维护者。 他关于所提供联系的JMH会谈最新版本。
Java基准是除三边外一切的,而经测试的法典工作越少,越深越多。 在试图控制业绩问题时,时间推移可能非常误导。 当你试图衡量外部事件的等待时间(例如等待对吉大港定居地的申请的答复和这些事情)时,当你能够确保从打破等候线到“紧接着”时间点之间所花的时间可以忽略时,并且只要read子首先被适当锁定。 通常情况是,如果至少按十毫秒的速度等待,情况就是如此。 如果您等待seconds的话,你会感到好。 然而,将产生热情和切身效应,破坏你测量对现实世界业绩的适用性。
在衡量“CPU实际时间”方面,可以采用Joachim Sauer的答复所详述的办法。 在使用JMH时,可以衡量CPU在外部使用的情况,然后根据所测量的频率来衡量平均使用量,不过,这将包括利用这一方法对比较测量进行罚款,但不适合得出“平均而言,CPU在CPU第I号楼的每座旋转器上采用这样的数量。 在一个现代的CPU和JVER公司,这种观察实际上是不可能的。
一些简介员(Jprofile、Jprobe、Youkit)可以分析这些数据。 不仅如此,还有很多......(例如记忆利用、阅读细节等)
Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...
Check this, List<String> list = new ArrayList<String>(); for (int i = 0; i < 10000; i++) { String value = (""+UUID.randomUUID().getLeastSignificantBits()).substring(3, ...
I am in the middle of solving a problem where I think it s best suited for a decorator and a state pattern. The high level setting is something like a sandwich maker and dispenser, where I have a set ...
I have been trying to execute a MS SQL Server stored procedure via JDBC today and have been unsuccessful thus far. The stored procedure has 1 input and 1 output parameter. With every combination I ...
I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...
If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...
I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....
I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...