性能对比分析
Posted 123456dh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能对比分析相关的知识,希望对你有一定的参考价值。
package edu.wtbu;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
//分析性能问题
public class Demo01
public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException
Demo01 demo01 = new Demo01();
demo01.text1();
demo01.text2();
demo01.text3();
//普通方法调用
public void text1()
User user = new User();
long start = System.currentTimeMillis();
for (int i = 0; i <1000000000 ; i++)
user.getName();
long end = System.currentTimeMillis();
System.out.println("执行时间"+(end-start)+"ms");
//反射方法调用
public void text2() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException
User user = new User();
Class<? extends User> c1 = user.getClass();
Method getName = c1.getDeclaredMethod("getName",null);
long start = System.currentTimeMillis();
for (int i = 0; i <1000000000 ; i++)
getName.invoke(user,null);
long end = System.currentTimeMillis();
System.out.println("执行时间"+(end-start)+"ms");
//反射方法调用 关闭检测
public void text3() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
User user = new User();
Class<? extends User> c1 = user.getClass();
Method getName = c1.getDeclaredMethod("getName",null);
getName.setAccessible(true);
long start = System.currentTimeMillis();
for (int i = 0; i <1000000000 ; i++)
getName.invoke(user,null);
long end = System.currentTimeMillis();
System.out.println("执行时间"+(end-start)+"ms");
以上是关于性能对比分析的主要内容,如果未能解决你的问题,请参考以下文章
ArrayList去重常用的四种方式及性能对比(JMH性能分析)
JS几种数组遍历方式以及性能分析对比(转 未经测试,先mark)