相关疑难解决方法(0)

如何在Java中编写正确的微基准测试?

你如何在Java中编写(并运行)正确的微基准测试?

我在这里寻找代码示例和注释,说明要考虑的各种事项.

示例:基准测量应该测量时间/迭代或迭代/时间,为什么?

相关:秒表基准可以接受吗?

java benchmarking jvm jvm-hotspot microbenchmark

835
推荐指数
11
解决办法
11万
查看次数

如何计算方法在Java中的执行时间?

如何获得方法的执行时间?是否有Timer实用程序类用于计算任务需要多长时间等等?

Google上的大多数搜索会返回计划线程和任务的计时器的结果,这不是我想要的.

java timing

792
推荐指数
26
解决办法
65万
查看次数

如何衡量Java中的时间?

我想要这样的东西:

public class Stream
{
    public startTime;
    public endTime;

    public getDuration()
    {
        return startTime - endTime;
    }
}
Run Code Online (Sandbox Code Playgroud)

同样重要的是,例如,如果startTime为23:00,endTime为1:00,则持续时间为2:00.

在Java中使用哪些类型来实现这一目的?

java time

319
推荐指数
8
解决办法
41万
查看次数

我如何在java中对方法执行时间进行基准测试?

我有一个程序,我自己用java编写,但我想测试方法执行时间并获得特定方法的时间.我想知道这是否可能,或许某种程度上是一个eclipse插件?或者可能插入一些代码?

我知道,这是一个相当小的程序,不超过1500行,这将是一个更好的专用工具或System.currentTimeMillis()

非常感谢

java optimization

44
推荐指数
3
解决办法
3万
查看次数

如何衡量经过的时间

我有一个10和20的问题游戏.我需要计算用户完成游戏后经过的时间.

Timer T=new Timer();
T.scheduleAtFixedRate(new TimerTask() {         
    @Override
    public void run() {
        runOnUiThread(new Runnable()
        {                
            public void run()
            {
                countdown.setText(""+count);
                count++;                
            }
        });
    }
}, 1000, 1000);
Run Code Online (Sandbox Code Playgroud)

我用这个来阻止柜台:

T.cancel();
Run Code Online (Sandbox Code Playgroud)

现在我需要两件事:

  • 一种如何计算经过时间并将其存储在变量中的方法
  • 我需要最终值为双倍,例如最终得分是:15.49秒.

java android

36
推荐指数
3
解决办法
10万
查看次数

Windows 10上的Java Thread.sleep()在S3睡眠状态下停止

有一个桌面应用程序使用Thread.sleep()来实现长(数分钟或数小时)的延迟。从Windows XP(至少)到Windows 7,该应用程序都可以正常工作。该应用程序将计算将来需要执行的操作,然后单击Thread.sleep(msToWait)。即使系统在等待期间碰巧进入了S3睡眠状态,这也可以正常工作。

但是,从Windows 10开始,如果机器位于S3中,则Thread.sleep()之后的代码不会“按时”执行。看来机器开始在“ msToWait”处加上机器进入S3的时间开始执行代码(目前尚不能百分百确定,但有可能)。

Windows的早期版本没有表现出这种现象。不管睡眠状态如何,Thread.sleep()之后的代码都会等待正确的时间。

测试是在当前的JVM 1.7上进行的。

这是Windows 10错误吗?这是JVM错误吗?有解决方法吗?

附加数据:

开发了测试程序和程序。步骤是运行程序,使机器休眠约一分钟,然后唤醒机器并等待程序完成。

如果此程序在JVM版本为25.40-b25的Windows 10(报告为8)上运行,它将失败:

C:\Users\Tester\Downloads>SleepTester.exe
Wed Apr 01 10:47:35 PDT 2015 Using default number of minutes: 5
Wed Apr 01 10:47:35 PDT 2015 You can use "SleepTester -minutes 10" to have it sleep for 10 minutes, for example.
Wed Apr 01 10:47:35 PDT 2015 JVM Version: 25.40-b25 Windows Version: Windows 8
Wed Apr 01 10:47:35 PDT 2015 The program will now wait for 5 minutes.  Expect wrap-up at Wed …
Run Code Online (Sandbox Code Playgroud)

java windows windows-8 windows-10 sleep-mode

13
推荐指数
1
解决办法
1372
查看次数

用java创建快速/可靠的基准测试?

我正在尝试用java创建基准测试.目前我有以下简单的方法:

public static long runTest(int times){
    long start = System.nanoTime();     
    String str = "str";
    for(int i=0; i<times; i++){
        str = "str"+i;
    }       
    return System.nanoTime()-start;     
}
Run Code Online (Sandbox Code Playgroud)

我目前在另一个多次发生的循环中多次进行此循环,并获得运行此方法所需的最小/最大/平均时间.然后我在另一个线程上开始一些活动并再次测试.基本上我只想获得一致的结果......如果我有一千万次runTest循环,它似乎非常一致:

Number of times ran: 5
The max time was: 1231419504 (102.85% of the average)
The min time was: 1177508466 (98.35% of the average)
The average time was: 1197291937
The difference between the max and min is: 4.58%

Activated thread activity.

Number of times ran: 5
The max time was: 3872724739 (100.82% of the average) …
Run Code Online (Sandbox Code Playgroud)

java benchmarking

5
推荐指数
1
解决办法
4110
查看次数

如何获取 JDBC 查询的 exec/fetch 时间?

DbVisualizer这样的工具通常会在执行数据库查询后显示 exec/fetch 时间。通过 JDBC 执行查询后是否可以访问此类性能指标?

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();

// missing functionality:
float executionTime = rsmd.getExecTime();
float fetchTime = rsmd.getFetchTime();
Run Code Online (Sandbox Code Playgroud)

我没有在ResultSetResultSetMetaData类中找到任何这样的性能测量功能。没有比使用系统时钟“手动”测量经过时间更好的方法了,例如如何计算 java 中事件的经过时间?

java database performance time jdbc

4
推荐指数
1
解决办法
5834
查看次数