通过上面的测试可以看出,过多地使用反射,的确会存在性能问题,但如果使用得当,所谓反射导致性能问题也就不是问题了,关于反射对性能的影响,参照下面的使用原则,并不会有什么明显的问题:
- 不要过于频繁地使用反射,大量地使用反射会带来性能问题;
- 通过反射直接访问实例会比访问方法快很多,所以应该优先采用访问实例的方式。
后记
上面的测试并不全面,但在一定程度上能够反映出反射的确会导致性能问题,也能够大概知道是哪个地方导致的问题。如果后面有必要进一步测试,我会从下面几个方面作进一步测试:
- 测试频繁调用native方法是否会有明显的性能问题;
- 测试同一个方法内,过多的条件判断是否会有明显的性能问题;
- 测试类的复杂程度是否会对反射的性能有明显影响。