java 反射快慢測試以及如何優化

package test;
public class Person {
    public void xxx(){

    }
}
package test;
public class Demo {

    public static void main(String[] args) throws Exception{
        // 設置 testTime 是爲了預熱( 前幾次測試運行本來就很慢,而且誰放在前面誰越慢 )
        // 前幾次 測試可以忽略
        int testTime=10;
        int loopTime=1000000;
        for( int i=0;i<testTime;i++ ){
            testUsingConstructor( loopTime );
            testUsingReflection( loopTime );
            testUsingReflectionCachingClassMetadata( loopTime );
            System.out.println( );
        }
    }

    public static void testUsingConstructor( int loopTime ) throws Exception{
        long t = System.currentTimeMillis();
        for (int i=0; i<loopTime; i++) {
            Person p = new Person();
            p.xxx();
        }
        System.out.println( "構造函數耗時:" + ( System.currentTimeMillis() - t ) );
    }

    public static void testUsingReflection( int loopTime ) throws Exception{
        long t = System.currentTimeMillis();
        for (int i=0; i<loopTime; i++) {
            Person p = (Person) Class.forName("test.Person").newInstance();
            p.xxx();
        }
        System.out.println( "使用反射( 每次新建 class )耗時:" + ( System.currentTimeMillis() - t ) );
    }

    public static void testUsingReflectionCachingClassMetadata( int loopTime ) throws Exception{
        Class<?> clazz = Class.forName("test.Person");
        long t = System.currentTimeMillis();
        for (int i=0; i<loopTime; i++) {
            Person p = (Person) clazz.newInstance();
            p.xxx();
        }
        System.out.println( "使用反射( 緩存 class )耗時:" + ( System.currentTimeMillis() - t ) );
    }
}

測試輸出結果:

D:\install\jdk_8u231\bin\java.exe -javaagent:D:\install\IDEA_Community\lib\idea_rt.jar=58826:D:\install\IDEA_Community\bin -Dfile.encoding=UTF-8 -classpath D:\install\jdk_8u231\jre\lib\charsets.jar;D:\install\jdk_8u231\jre\lib\deploy.jar;D:\install\jdk_8u231\jre\lib\ext\access-bridge-64.jar;D:\install\jdk_8u231\jre\lib\ext\cldrdata.jar;D:\install\jdk_8u231\jre\lib\ext\dnsns.jar;D:\install\jdk_8u231\jre\lib\ext\jaccess.jar;D:\install\jdk_8u231\jre\lib\ext\jfxrt.jar;D:\install\jdk_8u231\jre\lib\ext\localedata.jar;D:\install\jdk_8u231\jre\lib\ext\nashorn.jar;D:\install\jdk_8u231\jre\lib\ext\sunec.jar;D:\install\jdk_8u231\jre\lib\ext\sunjce_provider.jar;D:\install\jdk_8u231\jre\lib\ext\sunmscapi.jar;D:\install\jdk_8u231\jre\lib\ext\sunpkcs11.jar;D:\install\jdk_8u231\jre\lib\ext\zipfs.jar;D:\install\jdk_8u231\jre\lib\javaws.jar;D:\install\jdk_8u231\jre\lib\jce.jar;D:\install\jdk_8u231\jre\lib\jfr.jar;D:\install\jdk_8u231\jre\lib\jfxswt.jar;D:\install\jdk_8u231\jre\lib\jsse.jar;D:\install\jdk_8u231\jre\lib\management-agent.jar;D:\install\jdk_8u231\jre\lib\plugin.jar;D:\install\jdk_8u231\jre\lib\resources.jar;D:\install\jdk_8u231\jre\lib\rt.jar;D:\svn\kftz\backend\jeecg-boot-module-system\target\classes;D:\svn\kftz\backend\jeecg-boot-base-common\target\classes;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-web\2.1.3.RELEASE\spring-boot-starter-web-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter\2.1.3.RELEASE\spring-boot-starter-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot\2.1.3.RELEASE\spring-boot-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-logging\2.1.3.RELEASE\spring-boot-starter-logging-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.2\log4j-to-slf4j-2.11.2.jar;D:\install\apache-maven-3_6_2\repository\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar;D:\install\apache-maven-3_6_2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\install\apache-maven-3_6_2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\install\apache-maven-3_6_2\repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-json\2.1.3.RELEASE\spring-boot-starter-json-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.8\jackson-datatype-jdk8-2.9.8.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.8\jackson-datatype-jsr310-2.9.8.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.8\jackson-module-parameter-names-2.9.8.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.3.RELEASE\spring-boot-starter-tomcat-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.16\tomcat-embed-core-9.0.16.jar;D:\install\apache-maven-3_6_2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.16\tomcat-embed-el-9.0.16.jar;D:\install\apache-maven-3_6_2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.16\tomcat-embed-websocket-9.0.16.jar;D:\install\apache-maven-3_6_2\repository\org\hibernate\validator\hibernate-validator\6.0.14.Final\hibernate-validator-6.0.14.Final.jar;D:\install\apache-maven-3_6_2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-web\5.1.5.RELEASE\spring-web-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-beans\5.1.5.RELEASE\spring-beans-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-webmvc\5.1.5.RELEASE\spring-webmvc-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-expression\5.1.5.RELEASE\spring-expression-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-mail\2.1.3.RELEASE\spring-boot-starter-mail-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-context-support\5.1.5.RELEASE\spring-context-support-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\com\sun\mail\javax.mail\1.6.2\javax.mail-1.6.2.jar;D:\install\apache-maven-3_6_2\repository\javax\activation\activation\1.1\activation-1.1.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-core\5.1.5.RELEASE\spring-core-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-jcl\5.1.5.RELEASE\spring-jcl-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-aop\2.1.3.RELEASE\spring-boot-starter-aop-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-aop\5.1.5.RELEASE\spring-aop-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\aspectj\aspectjweaver\1.9.2\aspectjweaver-1.9.2.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-actuator\2.1.3.RELEASE\spring-boot-starter-actuator-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.1.3.RELEASE\spring-boot-actuator-autoconfigure-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-actuator\2.1.3.RELEASE\spring-boot-actuator-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\io\micrometer\micrometer-core\1.1.3\micrometer-core-1.1.3.jar;D:\install\apache-maven-3_6_2\repository\org\hdrhistogram\HdrHistogram\2.1.9\HdrHistogram-2.1.9.jar;D:\install\apache-maven-3_6_2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\install\apache-maven-3_6_2\repository\commons-io\commons-io\2.6\commons-io-2.6.jar;D:\install\apache-maven-3_6_2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-freemarker\2.1.3.RELEASE\spring-boot-starter-freemarker-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\freemarker\freemarker\2.3.28\freemarker-2.3.28.jar;D:\install\apache-maven-3_6_2\repository\org\projectlombok\lombok\1.18.6\lombok-1.18.6.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\mybatis-plus-boot-starter\3.1.2\mybatis-plus-boot-starter-3.1.2.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\mybatis-plus\3.1.2\mybatis-plus-3.1.2.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\mybatis-plus-extension\3.1.2\mybatis-plus-extension-3.1.2.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\mybatis-plus-core\3.1.2\mybatis-plus-core-3.1.2.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\mybatis-plus-annotation\3.1.2\mybatis-plus-annotation-3.1.2.jar;D:\install\apache-maven-3_6_2\repository\org\mybatis\mybatis\3.5.1\mybatis-3.5.1.jar;D:\install\apache-maven-3_6_2\repository\org\mybatis\mybatis-spring\2.0.1\mybatis-spring-2.0.1.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-autoconfigure\2.1.3.RELEASE\spring-boot-autoconfigure-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.3.RELEASE\spring-boot-starter-jdbc-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-jdbc\5.1.5.RELEASE\spring-jdbc-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\com\alibaba\druid-spring-boot-starter\1.1.17\druid-spring-boot-starter-1.1.17.jar;D:\install\apache-maven-3_6_2\repository\com\alibaba\druid\1.1.17\druid-1.1.17.jar;D:\install\apache-maven-3_6_2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\install\apache-maven-3_6_2\repository\com\baomidou\dynamic-datasource-spring-boot-starter\2.5.4\dynamic-datasource-spring-boot-starter-2.5.4.jar;D:\install\apache-maven-3_6_2\repository\com\alibaba\fastjson\1.2.60\fastjson-1.2.60.jar;D:\install\apache-maven-3_6_2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;D:\install\apache-maven-3_6_2\repository\com\microsoft\sqlserver\sqljdbc4\4.0\sqljdbc4-4.0.jar;D:\install\apache-maven-3_6_2\repository\com\oracle\ojdbc6\11.2.0.3\ojdbc6-11.2.0.3.jar;D:\install\apache-maven-3_6_2\repository\org\postgresql\postgresql\42.2.6\postgresql-42.2.6.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-quartz\2.1.3.RELEASE\spring-boot-starter-quartz-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-tx\5.1.5.RELEASE\spring-tx-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\quartz-scheduler\quartz\2.3.0\quartz-2.3.0.jar;D:\install\apache-maven-3_6_2\repository\com\mchange\mchange-commons-java\0.2.11\mchange-commons-java-0.2.11.jar;D:\install\apache-maven-3_6_2\repository\com\auth0\java-jwt\3.7.0\java-jwt-3.7.0.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.8\jackson-databind-2.9.8.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\core\jackson-core\2.9.8\jackson-core-2.9.8.jar;D:\install\apache-maven-3_6_2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-spring-boot-starter\1.4.0\shiro-spring-boot-starter-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-spring\1.4.0\shiro-spring-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-core\1.4.0\shiro-core-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-lang\1.4.0\shiro-lang-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-cache\1.4.0\shiro-cache-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-crypto-hash\1.4.0\shiro-crypto-hash-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-crypto-core\1.4.0\shiro-crypto-core-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-crypto-cipher\1.4.0\shiro-crypto-cipher-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-config-core\1.4.0\shiro-config-core-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-config-ogdl\1.4.0\shiro-config-ogdl-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-event\1.4.0\shiro-event-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\apache\shiro\shiro-web\1.4.0\shiro-web-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\crazycake\shiro-redis\3.1.0\shiro-redis-3.1.0.jar;D:\install\apache-maven-3_6_2\repository\redis\clients\jedis\2.9.1\jedis-2.9.1.jar;D:\install\apache-maven-3_6_2\repository\com\puppycrawl\tools\checkstyle\8.3\checkstyle-8.3.jar;D:\install\apache-maven-3_6_2\repository\org\antlr\antlr4-runtime\4.7\antlr4-runtime-4.7.jar;D:\install\apache-maven-3_6_2\repository\commons-cli\commons-cli\1.4\commons-cli-1.4.jar;D:\install\apache-maven-3_6_2\repository\net\sf\saxon\Saxon-HE\9.8.0-4\Saxon-HE-9.8.0-4.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\com\google\guava\guava\20.0\guava-20.0.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\com\github\xiaoymin\swagger-bootstrap-ui\1.9.3\swagger-bootstrap-ui-1.9.3.jar;D:\install\apache-maven-3_6_2\repository\io\springfox\springfox-bean-validators\2.9.2\springfox-bean-validators-2.9.2.jar;D:\install\apache-maven-3_6_2\repository\io\swagger\swagger-annotations\1.5.22\swagger-annotations-1.5.22.jar;D:\install\apache-maven-3_6_2\repository\io\swagger\swagger-models\1.5.22\swagger-models-1.5.22.jar;D:\install\apache-maven-3_6_2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-data-redis\2.1.3.RELEASE\spring-boot-starter-data-redis-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\data\spring-data-redis\2.1.5.RELEASE\spring-data-redis-2.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\data\spring-data-keyvalue\2.1.5.RELEASE\spring-data-keyvalue-2.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\data\spring-data-commons\2.1.5.RELEASE\spring-data-commons-2.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-oxm\5.1.5.RELEASE\spring-oxm-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\io\lettuce\lettuce-core\5.1.4.RELEASE\lettuce-core-5.1.4.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-common\4.1.33.Final\netty-common-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-handler\4.1.33.Final\netty-handler-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-buffer\4.1.33.Final\netty-buffer-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-codec\4.1.33.Final\netty-codec-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-transport\4.1.33.Final\netty-transport-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\netty\netty-resolver\4.1.33.Final\netty-resolver-4.1.33.Final.jar;D:\install\apache-maven-3_6_2\repository\io\projectreactor\reactor-core\3.2.6.RELEASE\reactor-core-3.2.6.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\reactivestreams\reactive-streams\1.0.2\reactive-streams-1.0.2.jar;D:\install\apache-maven-3_6_2\repository\org\apache\commons\commons-pool2\2.6.1\commons-pool2-2.6.1.jar;D:\install\apache-maven-3_6_2\repository\org\jeecgframework\boot\codegenerate\1.0.8\codegenerate-1.0.8.jar;D:\install\apache-maven-3_6_2\repository\org\jeecgframework\autopoi-web\1.1.1\autopoi-web-1.1.1.jar;D:\install\apache-maven-3_6_2\repository\org\jeecgframework\autopoi\1.1.1\autopoi-1.1.1.jar;D:\install\apache-maven-3_6_2\repository\org\apache\poi\poi\3.9\poi-3.9.jar;D:\install\apache-maven-3_6_2\repository\org\apache\poi\poi-ooxml\3.9\poi-ooxml-3.9.jar;D:\install\apache-maven-3_6_2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;D:\install\apache-maven-3_6_2\repository\org\apache\poi\poi-ooxml-schemas\3.9\poi-ooxml-schemas-3.9.jar;D:\install\apache-maven-3_6_2\repository\org\apache\xmlbeans\xmlbeans\2.3.0\xmlbeans-2.3.0.jar;D:\install\apache-maven-3_6_2\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;D:\install\apache-maven-3_6_2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;D:\install\apache-maven-3_6_2\repository\org\apache\poi\poi-scratchpad\3.9\poi-scratchpad-3.9.jar;D:\install\apache-maven-3_6_2\repository\cn\hutool\hutool-all\4.5.11\hutool-all-4.5.11.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\aliyun-java-sdk-dysmsapi\1.0.0\aliyun-java-sdk-dysmsapi-1.0.0.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\aliyun-java-sdk-core\3.2.3\aliyun-java-sdk-core-3.2.3.jar;D:\install\apache-maven-3_6_2\repository\org\jeecgframework\boot\online-form\2.1.2\online-form-2.1.2.jar;D:\install\apache-maven-3_6_2\repository\org\hibernate\hibernate-core\5.3.7.Final\hibernate-core-5.3.7.Final.jar;D:\install\apache-maven-3_6_2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\install\apache-maven-3_6_2\repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;D:\install\apache-maven-3_6_2\repository\org\javassist\javassist\3.23.1-GA\javassist-3.23.1-GA.jar;D:\install\apache-maven-3_6_2\repository\net\bytebuddy\byte-buddy\1.9.10\byte-buddy-1.9.10.jar;D:\install\apache-maven-3_6_2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;D:\install\apache-maven-3_6_2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.1.1.Final\jboss-transaction-api_1.2_spec-1.1.1.Final.jar;D:\install\apache-maven-3_6_2\repository\org\jboss\jandex\2.0.5.Final\jandex-2.0.5.Final.jar;D:\install\apache-maven-3_6_2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;D:\install\apache-maven-3_6_2\repository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;D:\install\apache-maven-3_6_2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.4.Final\hibernate-commons-annotations-5.0.4.Final.jar;D:\install\apache-maven-3_6_2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;D:\install\apache-maven-3_6_2\repository\org\apache\httpcomponents\httpcore\4.4.11\httpcore-4.4.11.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\boot\spring-boot-starter-websocket\2.1.3.RELEASE\spring-boot-starter-websocket-2.1.3.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-messaging\5.1.5.RELEASE\spring-messaging-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-websocket\5.1.5.RELEASE\spring-websocket-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\oss\aliyun-sdk-oss\3.6.0\aliyun-sdk-oss-3.6.0.jar;D:\install\apache-maven-3_6_2\repository\org\jdom\jdom\1.1\jdom-1.1.jar;D:\install\apache-maven-3_6_2\repository\org\codehaus\jettison\jettison\1.1\jettison-1.1.jar;D:\install\apache-maven-3_6_2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\aliyun-java-sdk-ram\3.0.0\aliyun-java-sdk-ram-3.0.0.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\aliyun-java-sdk-sts\3.0.0\aliyun-java-sdk-sts-3.0.0.jar;D:\install\apache-maven-3_6_2\repository\com\aliyun\aliyun-java-sdk-ecs\4.2.0\aliyun-java-sdk-ecs-4.2.0.jar;D:\install\apache-maven-3_6_2\repository\com\github\tobato\fastdfs-client\1.26.7\fastdfs-client-1.26.7.jar;D:\install\apache-maven-3_6_2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;D:\install\apache-maven-3_6_2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\install\apache-maven-3_6_2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\install\apache-maven-3_6_2\repository\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;D:\install\apache-maven-3_6_2\repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;D:\install\apache-maven-3_6_2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\install\apache-maven-3_6_2\repository\org\springframework\spring-context\5.1.5.RELEASE\spring-context-5.1.5.RELEASE.jar;D:\install\apache-maven-3_6_2\repository\net\coobird\thumbnailator\0.4.8\thumbnailator-0.4.8.jar;D:\install\apache-maven-3_6_2\repository\com\github\pagehelper\pagehelper\5.1.10\pagehelper-5.1.10.jar;D:\install\apache-maven-3_6_2\repository\com\github\jsqlparser\jsqlparser\2.1\jsqlparser-2.1.jar org.jeecg.test.Demo
構造函數耗時:13
使用反射( 每次新建 class )耗時:1179
使用反射( 緩存 class )耗時:39

構造函數耗時:12
使用反射( 每次新建 class )耗時:768
使用反射( 緩存 class )耗時:16

構造函數耗時:0
使用反射( 每次新建 class )耗時:685
使用反射( 緩存 class )耗時:11

構造函數耗時:0
使用反射( 每次新建 class )耗時:727
使用反射( 緩存 class )耗時:6

構造函數耗時:0
使用反射( 每次新建 class )耗時:677
使用反射( 緩存 class )耗時:4

構造函數耗時:0
使用反射( 每次新建 class )耗時:714
使用反射( 緩存 class )耗時:5

構造函數耗時:0
使用反射( 每次新建 class )耗時:730
使用反射( 緩存 class )耗時:4

構造函數耗時:0
使用反射( 每次新建 class )耗時:722
使用反射( 緩存 class )耗時:4

構造函數耗時:0
使用反射( 每次新建 class )耗時:685
使用反射( 緩存 class )耗時:4

構造函數耗時:0
使用反射( 每次新建 class )耗時:711
使用反射( 緩存 class )耗時:5


Process finished with exit code 0

可以發現緩存 class 對反射的性能還是有非常可觀的提升的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章