网站制作成品下载,必应搜索引擎首页,wordpress管理界面,特色产品推广方案本问题已经有最佳答案#xff0c;请猛点这里访问。我需要分析Java中的一些算法的复杂性。为此#xff0c;我计划提供大量的输入#xff0c;并测量Java实现所花费的时间。检查某些代码行之间的时间最精确和准确的方法是什么#xff1f;我需要精确到毫秒…不完全是#xff0…本问题已经有最佳答案请猛点这里访问。我需要分析Java中的一些算法的复杂性。为此我计划提供大量的输入并测量Java实现所花费的时间。检查某些代码行之间的时间最精确和准确的方法是什么我需要精确到毫秒…不完全是我在寻找类似System.NanoTime()的东西但是上面提到的问题更多的是关于一些正式的基准测试。它需要一些深度的阅读这可能对一个随便的读者没有帮助。Mangatrai作为一个临时读者在这个领域是危险的几乎所有你真正需要检查代码行之间的时间的情况都会受到这个问题中讨论的内容的严重影响。否则你将得到毫无价值或误导性的数据并做出错误的决定。你的问题与时间复杂性有什么关系您是否了解时间复杂性是静态分析而您要求绩效基准乔阿希姆我明白。对于不经意的读者我的意思是为了自己的理解而运行一些快速测试。VAL时间复杂性确实是一个静态分析但是我们可以通过性能基准来评估它。说第一次跑步我给了N个元素然后是2N3N…等等。通过绘制一个图表根据所花费的时间我可以得到一个概念比如复杂度是线性的还是更高的多项式。当然我们不会得到确切的时间复杂性但我问了更多关于玩一些代码的问题。甚至可以使用System.nanoTime()获得纳秒分辨率。但是您可能需要考虑以下几点如何在Java中编写正确的微基准你提到的问题很好。我会通读的…使用speed4j等库不仅可以对调用进行基准测试还可以在日志中提供统计信息还可以通过jmx远程查看。最好使用这样的库而不是放置System.Current。在整个代码中调用。1用于添加新内容)酷很好的补充假设你有一个特别的方法你想把它放在显微镜下。您可以这样做long time1 System.nanoTime();thatMethod();long time2 System.nanoTime();long timeTaken time2 - time1;System.out.println(Time taken timeTaken ns);计算机真的很快所以在使用getTimeMillis()时可能会出现时差可能为零。因此使用nanoTime()您也可以使用Caliper。他们有一段视频要开始。另外仔细阅读creichen所指的答案。里面有很多很棒的东西。使用System.nanoTime()或System.currentTimeMillis()来获取代码的开始和结束时间。请注意微观基准只测量JVM性能的基本方面。注意JVM的预热阶段在这之后JIT就开始了。我建议使用system.nantime()stackoverflow.com/questions/11591000/helliplong startTime System.currentTimeMillis();//code lines whose time you want to calculatelong endTime System.currentTimeMillis();System.out.println(Took(endTime - startTime) ms);。我很想这么做但是……请格式化您的代码。避免陈述已经陈述的内容。long start System.currentTimeMillis();// your codelong end System.currentTimeMillis();long diff end-start;或long start System.nanoTime();// your codelong end System.nanoTime();long diff end-start;long diffInMillis diff/1000000;号我建议不要使用currentTimeMillis来知道执行时间。