私たちが使用した ProGuard コードの最適化の 1 つ、つまりクラス階層のマージは、おそらくまったく良い選択ではないかもしれないと思いました。
私の直感では、ClassLoader の呼び出しを削減するためにクラスをマージすることが有益であるということでした。これは、少なくとも JVM では特に処理が遅くなります。大規模な God オブジェクト クラスであるため、ClassLoader は比較的頻繁に実行されます。
ただし、すべてのクラスが 1 つのクラスにマージされるという極端な (おそらくありそうにない) ケースを考えると、たとえローダーが 1 回しか呼び出されなくても、大量のコードをメモリにロードすることになり、それらはまったく使用されない可能性が非常に高くなります (ここでも 80/20 ルールが適用されると思います)。
それは私に不思議に思う:
1) 実際、Dalvik でのクラスの読み込み速度はどれくらいですか? クラスマージを使用して削減する価値のある操作ですか?
2) そうは言っても、Android でクラス マージを使用することをお勧めしますか?