🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.hardware.cpu+mainboard.misc
Article #48

Re: Wieso nie ueber 4 GhZ

#48
From: Raffael Herzog
Date: Mon, 10 Nov 2008 03:42
88 lines
6700 bytes
Elcaro Nosille wrote:

>> Stimmt, aber eine Pentium-CPU führt ja auch nicht Maschinencode aus, 
>> sondern interpretiert ist. Denn die Stufe darunter ist der Microcode ;-) 
>> Sonst könnte man auch auch keine (Intel-)CPUs via BIOS-Updates 
>> pat(s)chen ...
> 
> Man kann auch in einen Zwischencode kompilieren wie es Java
> macht und wie es die meisten sog. "Interpreter" intern tun.

Sorry, ich kann dem nicht mehr länger zulesen ...

Java wird von HotSpot, sofern nötig (hier greift die 20-80-Regel: Nur 20%
des Code sind überhaupt für die Performance eines Programms relevant), in
Maschinencode kompiliert. Läuft es auf einem AMD64, kommen hier
AMD64-spezifische Instruktionen zum Einsatz. Läuft es auf einem P4, kommen
P4-spezifische Instruktionen zum Einsatz. Der Vorteil von HotSpot,
gegenüber jedem statischen Compiler, ist, dass HotSpot die Kiste, auf die
es compilieren soll, ganz genau kennt.

HotSpot kann in drei Modi laufen: Interpreted (das ist das, was wir von Java
1.1 ohne JIT kennen), Mixed (ein Teil wird compiliert, bei einem Teil
belässt man es dabei, den von javac erzeugten Bytecode zu interpretieren,
das sind die oben genannten 80%), und Compiled (alles wird compiliert,
abgesehen von der Code-Qualität ungefähr das, was wir von Java 1.1 mit JIT
kennen).

"Interpreted" macht keinen Sinn, zu 1.3 musste das noch da sein, weil man
anders nicht debuggen konnte. Das ist inzwischen korrigiert. Einige
argumentieren noch für diesen Modus, wenn man profilen will. Aber Profiling
ohne HotSpot mit einzubeziehen, ist Schwachsinn, denn wenn man schlauer als
HotSpot sein will, geht der Schuss nach hinten los.

"Compiled" mag auf den ersten Blick Sinn machen, tut es aber nur begrenzt.
Einige Anwendungen könnten davon tatsächlich profitieren, aber da HotSpot
ein hochoptimierender Compiler ist und in Java ständig zur Laufzeit Klassen
nachgeladen werden, geht dieser Schuss meist nach hinten los -- schnell
Klassen laden zu können ist wichtig, das machen wir in Java nämlich
ständig, und HotSpot nimmt sich schon etwas Zeit bei der Compilierung. Das
Laden von Klassen zu verlangsamen ist, vor allem in Anbetracht der
20-80-Regel, kontraproduktiv.

"Mixed": HotSpot beobachtet das Laufzeitverhalten des Programms und
versucht, die 20%, die für die Performance relevant sind, zu ermitteln. Hat
die JVM einen solchen "Hot Spot" identifiziert, wird darauf ein hochopti-
mierender Compiler angesetzt. Wie gesagt, dieser Compiler kennt die
Gegebenheiten dann ganz genau, und nutzt, was er nutzen kann. Die Sache
geht ziemlich weit, besonders auch, wenn man bedenkt, dass die Gegebenhei-
ten sich jederzeit ändern können, wenn Klassen nachgeladen werden: So kann
z.B. erstmal ein Inlining einer Methode als sinnvoll erscheinen, danach ein
ein Loop-Unrolling. HotSpot tut das. Kommt später eine Klasse hinzu, die
das vorherige Inlining verunmöglicht und man dort einen Methoden-Aufruf
stehen haben muss, macht HotSpot diese Optimierung rückgängig.

Ich habe jetzt ständig "HotSpot" geschrieben, aber jede JVM, die diese
Bezeichnung verdient, macht sowas heutzutage, "HotSpot" heisst es einfach
dann, wenn es von Sun oder (neuerdings) OpenJDK.org kommt.

Hört bitte auf, Perl oder PHP zu diesem Thema mit Java zu vergleichen ...
dass Perl oder PHP, vor allem in Relation zu den Entwicklungskosten, häufig
effizienter erscheinen, und auch sind, ist unbestritten. Aber Java spielt
da in einer anderen Liga.

Dass viele Java-Programme langsam erscheinen, liegt zu einem grossen Teil
daran, dass die Programmierer ständig die JVM verarschen wollen, um dieser
Langsamkeit, die Java nachgesagt wird, entgegen zu wirken. Zudem wollen sie
nicht begreifen, dass man den GC am besten einfach seinen Job machen lässt,
der funktioniert nämlich wesentlich komplexer, als einige es wahrhaben
wollen. Kurz: Vor lauter sich Gedanken um die Performance zu machen,
verwirrt man ein sehr ausgeklügeltes System derart, dass dieser Schuss
gründlich nach hinten los geht: Dieses ausgeklügelte System weiss nämlich
plötzlich nicht mehr, was es mit diesem "ausgeklügelten und auf Performance
optimierten Java-Code^WChaos" überhaupt anstellen soll ...

Was ich wohl zur Aussage, Java sei einfach, sagen könnte ... ich überlasse
es dem geneigten Leser, sich das auszumalen.

Dass Java ein Speicherfresser ist, ist Tatsache, wohlbekannt und unbestrit-
ten.

Gruss,
   Raffi

-- 
Come to think of it, there are already a million monkeys on a million
typewriters, and Usenet is *nothing* like Shakespeare!

herzog@raffael.ch · PGP Key 5D1FF5F4 · http://www.raffael.ch/
Technical Details
Message-ID: <gf8ahn$cm6$1@news2.open-news-network.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder3.cambrium.nl!feeder4.cambrium.nl!feed.tweaknews.nl!news2.euro.net!newsfeed.freenet.de!news.code-werk.net!open-news-network.org!news2.open-news-network.org!not-for-mail
References: <61850680-7dbe-41f8-89a4-a256dcb7d1d1@s9g2000prg.googlegroups.com> <geva1q$95d$1@news.bawue.net> <d07933a0-5574-4b82-b7ad-5fd5dd7b5e7b@c36g2000prc.googlegroups.com> <gf003l$bhe$1@hoshi.visyn.net> <49145941$0$30229$9b4e6d93@newsspool1.arcor-online.net> <gf1rfr$qbi$1@hoshi.visyn.net> <gf1tlg$ie4$1@suchanek.de> <gf1v2t$r6q$1@hoshi.visyn.net> <7s2fu5x7rg.ln2@ohme.dyndns.org> <gf3n27$75n$1@hoshi.visyn.net> <oabgu5x03i.ln2@ohme.dyndns.org> <gf4skh$eri$1@hoshi.visyn.net> <0ghju5x2vm.ln2@ohme.dyndns.org> <gf7p48$2ia$1@hoshi.visyn.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 108f31,625d278187b8691
X-Google-Thread: 10c1fa,d13f31202640530b
X-Google-Attributes: gid108f31,gid10c1fa,domainid0,public,usenet
X-Google-Language: GERMAN,UTF8
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder3.cambrium.nl!feeder4.cambrium.nl!feed.tweaknews.nl!news2.euro.net!newsfeed.freenet.de!news.code-werk.net!open-news-network.org!news2.open-news-network.org!not-for-mail
From: Raffael Herzog <devnull@raffael.ch>
Newsgroups: de.comp.hardware.cpu+mainboard.misc,ch.comp
Subject: Re: Wieso nie ueber 4 GhZ
Date: Mon, 10 Nov 2008 04:42:07 +0100
Organization: news.code-werk.net for www.open-news-network.org
Lines: 88
Message-ID: <gf8ahn$cm6$1@news2.open-news-network.org>
References: <61850680-7dbe-41f8-89a4-a256dcb7d1d1@s9g2000prg.googlegroups.com> <geva1q$95d$1@news.bawue.net> <d07933a0-5574-4b82-b7ad-5fd5dd7b5e7b@c36g2000prc.googlegroups.com> <gf003l$bhe$1@hoshi.visyn.net> <49145941$0$30229$9b4e6d93@newsspool1.arcor-online.net> <gf1rfr$qbi$1@hoshi.visyn.net> <gf1tlg$ie4$1@suchanek.de> <gf1v2t$r6q$1@hoshi.visyn.net> <7s2fu5x7rg.ln2@ohme.dyndns.org> <gf3n27$75n$1@hoshi.visyn.net> <oabgu5x03i.ln2@ohme.dyndns.org> <gf4skh$eri$1@hoshi.visyn.net> <0ghju5x2vm.ln2@ohme.dyndns.org> <gf7p48$2ia$1@hoshi.visyn.net>
Reply-To: usenet-reply@raffael.ch
NNTP-Posting-Host: NTI2MTZlNjQ2ZjZkNDk1NjZiY2VkOTM2MTI4NzdkYjlkZmM1NTc3NWY1ODIxNDA2MjQzN2EzZGI3N2E1ZTIxYjEwMTE4NGIzZTEzYzcyMDY3ZTVjMmE5NWViYWRmOWEyYzg4MzFkZTY4OTE1NTdiZQ==
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit
X-Trace: news2.open-news-network.org eJwNwgkRADEIBDBLhS5Q5PD6l3CXibCSjkJXGy4q/V86iPTk9LrbCd4uI94zBbC1trEvtcyb8BNmicqRtuKQSZyHvLQaHwTEGw4= (10 Nov 2008 03:41:43 GMT)
X-Complaints-To: abuse@open-news-network.org
NNTP-Posting-Date: Mon, 10 Nov 2008 03:41:43 +0000 (UTC)
X-User-ID: NTI2MTZlNjQ2ZjZkNDk1NjM0NDFiNGFlNzljMWU2NGQ5MDMzZWE2ZTBiZTE5NTkyNDgzMGQ0ZTBmOTEzZTQxYTFkNGIyNTY4ZWM4OTA5ODY=
Cancel-Lock: sha1:hKOB4QOamEa87E/xRveq4qdty/8=
User-Agent: KNode/0.10.9