Hallo Konrad,
Konrad Rosenbaum schrieb:
Das stimmt so auch nicht: auch in Smalltalk sind Methoden per default virtuell (nicht-virtuelle gibt es nicht). Smalltalk muss sogar noch einen Lookup mehr machen, weil die Typprüfung erst zur Laufzeit gemacht wird. Und trotztdem ist es um eine Größenordnung schneller als Java.
Mit SmallTalk habe ich keine Erfahrungen, würde dennoch gerne wissen, auf welchen Fakten sich diese Aussage stützt. Es gibt unter [1] einen Benchmark, der die Annahme zulässt, dass das Gegenteil der Fall ist. Verglichen wird im konkreten Beispiel das Java JDK mit Smalltalk VisualWorks. Natürlich sind Benchmarks nur eine Seite, und spiegeln nicht immer das tatsächliche Verhalten der Applikationen im realen Umfeld wieder. Dennoch erscheint mir der Unterschied zu offensichtlich. Aber das soll kein Flame sein, sondern wirklich eine Frage aus Interesse..
Viele Grüße, Matthias
[1] http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=java&a...