java中for与if的耗时

一个if判断耗时很短,差不多1ms不到,但是在for循环添加的if判断会被无限放大,以下为实际测试结果:

实验一
循环体里面只是进行了一次乘法运算和一个if判断,结果取10次实验平均值:

double avgTime = 0;
for (int k = 0; k < 10; k ++) {
		long startTime = System.currentTimeMillis();
		for (int i = 0; i < 10000; i ++) {
				for (int j = 0; j < 10000; j ++) {
						long temp = i * j;
						if (temp == -1) temp = -2;
				}
		}
		avgTime  = (System.currentTimeMillis() - startTime) / 1000.0 / 10.0;
}
System.out.println("avg 耗时:" +  avgTime);
循环次数耗时
10^80.08s
10^90.66s
10^100.65s
10^110.655s

实验二
循环体里面只是进行了一次加法运算和一个if判断,结果取10次实验平均值:

double avgTime = 0;
for (int k = 0; k < 10; k ++) {
		long startTime = System.currentTimeMillis();
		for (int i = 0; i < 10000; i ++) {
				for (int j = 0; j < 10000; j ++) {
						long temp = i + j;
						if (temp == -1) temp = -2;
				}
		}
		avgTime  = (System.currentTimeMillis() - startTime) / 1000.0 / 10.0;
}
System.out.println("avg 耗时:" +  avgTime);
循环次数耗时
10^80.0561s
10^90.4769s
10^104.3753s
10^1143.466s
Java 打印 SQL 语句执行的执行耗时,可以通过以下步骤实现: 1. 获取当前时间戳(单位为毫秒)。 2. 执行 SQL 语句。 3. 再获取当前时间戳。 4. 计算两个时间戳之差,即为 SQL 语句的执行耗时。 5. 将执行耗时打印出来。 下面是一个示例代码: ```java import java.sql.*; public class SqlExecTime { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1. 注册 JDBC 驱动 Class.forName("com.mysql.jdbc.Driver"); // 2. 打开数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 3. 获取当前时间戳 long startTime = System.currentTimeMillis(); // 4. 执行 SQL 语句 stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM `table1` WHERE `name` LIKE '%test%'"); // 5. 再获取当前时间戳 long endTime = System.currentTimeMillis(); // 6. 计算 SQL 语句的执行耗时 long execTime = endTime - startTime; // 7. 打印 SQL 语句执行耗时 System.out.println("SQL execute time: " + execTime + "ms"); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // 8. 关闭资源 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } } } ``` 注意:在实际开发,可以将记录时间戳和计算执行时间的代码封装到一个函数,以便重复使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值