刚刚有个想法闪过我脑海,我们使用的ProGuard代码优化之一,即合并类层次结构,也许根本不是一个好选择。
我的直觉告诉我,合并类对于减少ClassLoader的调用可能会有益处,因为至少在JVM上,ClassLoader是一个特别慢的操作。而且在我们的代码中,我们选择使用许多较小的(通常是内部)类,而不是大型的God对象类,因此ClassLoader将相对频繁地运行。
然而,假设所有类都被合并成单个类的极端情况(可能不太可能),那么尽管加载器只会被调用一次,但我们最终会把大量代码加载到内存中,这些代码很可能永远不会被使用(80/20原则在这里同样适用)。
这使我想知道:
1)Dalvik中的类加载有多快?是否值得使用类合并来减少Classloader的调用?
2)话虽如此,您是否建议在Android上使用类合并?
我的直觉告诉我,合并类对于减少ClassLoader的调用可能会有益处,因为至少在JVM上,ClassLoader是一个特别慢的操作。而且在我们的代码中,我们选择使用许多较小的(通常是内部)类,而不是大型的God对象类,因此ClassLoader将相对频繁地运行。
然而,假设所有类都被合并成单个类的极端情况(可能不太可能),那么尽管加载器只会被调用一次,但我们最终会把大量代码加载到内存中,这些代码很可能永远不会被使用(80/20原则在这里同样适用)。
这使我想知道:
1)Dalvik中的类加载有多快?是否值得使用类合并来减少Classloader的调用?
2)话虽如此,您是否建议在Android上使用类合并?