• Mathieu Chartier's avatar
    Add AbstractMethod, Constructor, Method · fc58af45
    Mathieu Chartier authored
    Moves functionality to ART from libcore. Precursor to moving
    ArtMethods to native. Mostly performance improvements.
    
    N5 perf before (irrelevant results removed):
                Class_getConstructor  962.87 ===========
             Class_getDeclaredMethod 2394.37 ============================
                     Class_getMethod 2509.20 ==============================
                   Class_newInstance 1999.81 =======================
                      Method_invokeI 1439.02 =================
              Method_invokePreBoxedI 1415.82 ================
                Method_invokeStaticI 1456.24 =================
        Method_invokeStaticPreBoxedI 1427.32 =================
                Method_invokeStaticV  814.47 =========
                      Method_invokeV  816.56 =========
    After:
                           benchmark      ns linear runtime
                Class_getConstructor 1302.04 ================
             Class_getDeclaredMethod 1459.01 ==================
                     Class_getMethod 1560.40 ===================
                   Class_newInstance 2029.94 =========================
                      Method_invokeI 1312.89 ================
              Method_invokePreBoxedI 1255.01 ===============
                Method_invokeStaticI 1289.13 ===============
        Method_invokeStaticPreBoxedI 1196.52 ==============
                Method_invokeStaticV  790.82 =========
                      Method_invokeV  791.73 =========
    
    Performance improvements are more than just fixing regressions introduced
    in: http://android-review.googlesource.com/#/c/146069/
    
    Bug: 19264997
    
    Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
    fc58af45
java_lang_reflect_Proxy.cc 1.63 KB