НМ
Size: a a a
НМ
AI
ST
НМ
AI
NK
АР
AR
(partial +)
даст менее производительный вариант, чем #(+ ^int %1 ^int %2)
IG
(.getFoo my-data)
AC
AC
AC
AC
AR
AR
(defn a [a b] (+ a b))
(defn b [^long a ^long b] (+ a b))
AR
AR
public static Object invokeStatic(Object a, Object b) {
Object var10000 = a;
a = null;
Object var10001 = b;
b = null;
return Numbers.add(var10000, var10001);
}
public Object invoke(Object var1, Object var2) {
Object var10000 = var1;
var1 = null;
Object var10001 = var2;
var2 = null;
return invokeStatic(var10000, var10001);
}
AR
public static Object invokeStatic(long a, long var2) {
return Numbers.num(Numbers.add(a, var2));
}
public Object invoke(Object var1, Object var2) {
return invokeStatic(RT.longCast((Number)var1), RT.longCast((Number)var2));
}
public final Object invokePrim(long var1, long var3) {
return invokeStatic(var1, var3);
}
AR
invoke
тут скорее всего особо не сыграет, то вот при вызове invokeStatic
и invokePrim
все обойдется без динамических диспатчей. вопрос, конечно, а сколько на себя в первом случае JIT сможет взятьAR