| • Science | • People | • Locations | • Timeline |
In Java, object creations are expensive compared with other compiled object-oriented programming language. This is because object creation involves:
Since the Java compiler cannot be completely sure about which method will be called before runtime due to dynamic class loading, each method call involves looking up a method in a virtual table. Use of small and simple methods that are called frequently can be quite expensive. If possible, inline code of such method directly at the point of call.
However, the Java HotSpot VM, introduced in J2SE 1.3, supports method inlining. Any code sections recognized as "hotspots" by this VM will be optimized including inlining of method calls, where it can be done safely.
There are some myths in performance tuning of Java programs.
final modifer with methods or classes reduces the overhead of call of methods - Because the Java compiler cannot know which class will be loaded at runtime, it cannot in-line-expand the methods regardless if they have final or not.