CustomTest.java 1.6 KB
Newer Older
智布道's avatar
智布道 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
package me.zhyd.oauth.utils;

import org.junit.Test;

/**
 * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
 * @version 1.0
 * @website https://www.zhyd.me
 * @date 2019/7/19 15:52
 * @since 1.8
 */
public class CustomTest {

    /**
     * 1000000: 23135ms
     * 100000: 3016ms
     * 10000: 328ms
     * 1000: 26ms
     */
    @Test
    public void test() {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            callMethod();
        }
        long end = System.currentTimeMillis();
        System.out.println((end - start) + "ms");

    }

    /**
     * 1000000: 19058ms
     * 100000: 2772ms
     * 10000: 323ms
     * 1000: 29ms
     */
    @Test
    public void test2() {
        long end = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            callMethod2();
        }
        long end2 = System.currentTimeMillis();
        System.out.println((end2 - end) + "ms");

    }

    public String callMethod() {
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
//        for (StackTraceElement stackTraceElement : stackTrace) {
//            System.out.println(stackTraceElement.getMethodName());
//        }
        return stackTrace[2].getMethodName();
    }

    public String callMethod2() {
        StackTraceElement[] stackTrace = (new Throwable()).getStackTrace();
//        for (StackTraceElement stackTraceElement : stackTrace) {
//            System.out.println(stackTraceElement.getMethodName());
//        }
        return stackTrace[2].getMethodName();
    }
}