I was looking through the web for some Java Performance benchmark, what may be surprise for some is that Java may be faster then native c++. For example here are some benchmark data:
http://kano.net/javabench/data

It is an old comparison on Java 1.4.2, I have written my own tests on Java 1.6.x and in Server JVM mode Java was almost 2x faster then c++ codes.

So... Java can be faster then C++, but I don't understand why all of my desktop Java based applications runs really slow. For example, try JDownloader, applications runs really slow, try Azureus, same thing, I even have English Translator program written in Java and it also runs really slow.

I have myself written some commercial Java based desktop applications and performance wasn't bad but most of my commercial applications are written in C++ or Delphi, and by comparison I can say that those written in Java are much slower, so my question is
WHY?

If benchmark on this kano.net page say that Java can be faster, if my own tests had given similar results why desktop applications are slower? Is it because of Swing?