Most languages that support the OO methodology suffer a very small performance hit because they have to look up the correct function to call in an objects virtual method table instead of the compiler simply making a direct call to the function. The same applies to languages like Objective-C where messages (function calls) go through a runtime system, making them slower than direct function calls. The overhead is so small in the 'big picture' that it can be mostly ignored. If you are really interested in performance, then just use a function call for those bits that need to be fast. An OO language does not take any extra time to call a normal function than a language like C.
Languages that run on virtual machines, such as Java and Smalltalk, may be slower because of the overhead of the VM. However, Java is not particularly slow. Some of the libraries, such as Swing, may be slow but the core language is not.
Delphi's performance has never been too hot. Sure, it compiles very, very quickly, but runtime performance has always lagged far behind good C/C++ compilers. Its optmisations are a bit of a joke, and only in the latest version has it finally got inline function calls. Still, the point is that it does not matter, because it is perfectly fine for what it is intended for.
It is better to worry about correct choice of algorithm. If the compiler is reasonably modern, a bad, or good, algorithm has a much bigger impact on application performance than anything the compiler does, or doesn't do, in the way of optimisation, or whether it is OO or not.
Languages that run on virtual machines, such as Java and Smalltalk, may be slower because of the overhead of the VM. However, Java is not particularly slow. Some of the libraries, such as Swing, may be slow but the core language is not.
Delphi's performance has never been too hot. Sure, it compiles very, very quickly, but runtime performance has always lagged far behind good C/C++ compilers. Its optmisations are a bit of a joke, and only in the latest version has it finally got inline function calls. Still, the point is that it does not matter, because it is perfectly fine for what it is intended for.
It is better to worry about correct choice of algorithm. If the compiler is reasonably modern, a bad, or good, algorithm has a much bigger impact on application performance than anything the compiler does, or doesn't do, in the way of optimisation, or whether it is OO or not.