性能对比分析

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)

HashMap,ArrayMap,SparseArray源码分析及性能对比

深度分析 | MyCat与DBLE的对比性能调优

(转)list set map 粗浅性能对比分析