我有以下主要功能:
public static void main(String[] args) {
int times = 100;
double startTime = System.nanoTime();
for (int a = 1; a <= times; a++) {
BTree<Integer> testTree = new BTree<Integer>(1,3); // Creates BTree with root 1 and degree T 3
for (int i = 2; i <= 500; i++) {
testTree.BTreeInsert(i); // We insert up to 500 keys.
}
}
double stopTime = System.nanoTime();
System.out.println("Time: " + (((stopTime-startTime) / 1000000 / times)) + "ms");
}
我试图在这里做的是测量将新键插入到B树中的执行时间,最多可达500次。问题是我得到的时间度量值有点小,所以我的老师告诉我循环多次。
这是因为JVM看到循环运行多次(分析),并使用优化编译器(C1和C2,如果这是热点JVM的话)。如果您使用-xx:+printcompility
运行您的类(像java-xx:+printcompilityclassname
)可以看到,在带有500
试用版中,编译了更多的方法-例如,我的OpenJDK 15.0.1java
多次编译arraylist::add
,使用C1和随后的C2(第三列中的2和3是C1的不同优化级别,4是C2):
45 48 3 java.util.ArrayList::add (25 bytes)
46 51 4 java.lang.Number::<init> (5 bytes)
46 49 2 java.util.ArrayList::add (23 bytes)
47 46 3 java.lang.Number::<init> (5 bytes) made not entrant
47 52 4 java.util.ArrayList::add (25 bytes)
因此,当有500次迭代的循环运行时,在几次迭代之后,它使用经过编译和高度优化的代码,而单次迭代版本将其留给解释器,后者速度较慢。
此外,我建议研究一下JMH,它是一个用于完成您想要在这里完成的工作的工具--微基准测试。
问题内容: 我想计算我的函数在Java中执行需要多少CPU时间。目前我正在做如下。 但是我发现,对于相同的I / PI,根据系统负载,获得不同的时间。 因此,如何获得我的函数执行所需的确切CPU时间。 问题答案: 随着JVM预热,所需的时间会有所不同。第二次运行将始终比第一次运行快。(第一次必须加载类并调用静态块)运行该方法10,000次后,它将再次更快(将代码编译为本机机器代码的默认阈值) 为了
问题内容: 我想使用PHP发送数百封电子邮件。为了增加执行时间,我使用了 ini_set(’max_execution_time’,10);。 但是仅发送 30 封电子邮件后,浏览器向我显示空白页,并且不会发送所有电子邮件。 我也将限制更改为300,600 .. 问题答案: 尝试在脚本顶部。 set_time_limit 设置最大执行时间(以秒为单位)。如果设置为零,则不施加时间限制
问题内容: 我添加了增加执行时间的功能,但最多只能执行2-3分钟。 我想从一个需要很长时间的站点上搜索链接。 任何帮助将不胜感激。 非常感谢。 问题答案: PHP文件(例如,my_lengthy_script.php) .htaccess文件 更多配置选项 如果是wordpress,请在config.php文件中进行设置, 如果是drupal,则为sites / default / setting
问题内容: 我在Python脚本中有多次调用的函数(https://github.com/sankhaMukherjee/NNoptExpt/blob/dev/src/lib/NNlib/NNmodel.py):为此,我已大大简化了该函数例。 我从另一个函数多次调用此函数。当我看到程序日志时,似乎此功能花费的时间越来越长。显示了部分日志: 有没有其他人经历过这样的事情?这完全让我感到困惑… 编辑
问题内容: 有没有一种方法可以获取mysql中最后一次执行查询的执行时间? 问题答案: mysql有一个内置的探查器。您可以通过发布来启用概要分析,并使用它来获取执行时间。
Elasticsearch版本():5.2.2 JVM版本():1.8.0_121 OS版本(如果在类UNIX系统上):opensuse 使用“curl-xget'localhost:9200/_search?pretty&timeout=1ms'”进行搜索 响应部分为:{“Take”:5,“timed_out”:false,“_shards”:{“total”:208,“successed”:2