#
介绍1.VME 的虚拟机中,相对性能开销最大的地方就是方法调用,如果是逻辑运算就开销不大,所以性能的损失主要在包含了方法调用的大循环上。
比如:
for (int i = 0; i < 10000; ++i) {method(i);}
2.如果是下面的方法,性能损失比较小。
int j = 0;for (int i = 0; i < 10000; ++i) {++j;}
3.虚拟化加密是应用到函数上的, 如果一个函数加密前加密后增加1ms, 如果这个函数在一个 1000次的循环中, 那时间增加是 1000ms。
例如:
a.java 里有个a函数b.java 里有个b函数c.java 里有个c函数1)如果c函数被加密了, 并且a函数和b函数都调用了c函数。 那c函数的代码会执行两次。2)如果未加密前c函数的执行时间是10ms,a、b 调用完一共需要20ms(10ms*2次)3)然后加密后的c函数的执行时间膨胀为15ms,a、b调用完一共需要30ms(15ms * 2 次)
#
建议1.对于第三方框架的,不属于自己开发的部分,不需要保护;
2.建议只保护自己业务相关的函数,注意这些函数上是否会通过循环List map、hasnmap、set
等调用;
3.建议只保护核心代码,全保护会比较慢。
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://firsource.cn/soft/368.html