<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Java ist ne verrückte Sprache....</title>
    <link>http://forum.geizhals.at/feed.jsp?id=455777</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(13): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3773505.html#3773505</link>
      <description>Da hätt jetzt eigentlich ein laaaanges Posting herkommen sollen aber ich machs kurz: ich stimm dir (an sich) zu 100% zu, sei es was es Erfahrung, Algos, Standardwerke, whatever betrifft. Ich wollte nur hinweisen, dass du dich gerade (meiner Meinung nach) in etwas verrennst &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Trotz allem gibt's manchmal den Bedarf, auch wirklich in die letzte Ebene&lt;br&gt;runterzugehen... Und da wird man halt gerne unterstützt. Bei mir halt&lt;br&gt;persönlich wegen Handy-Gschichtln...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Genau der Grund, warum diese Diskussion mir Spaß macht, ich hab mit dem GP2x nämlich gerade auch ein limitiertes Gerät (wenn auch nicht wie ein Handy) in der Reißen und versuch auch aus dem die letzten frames rauszukitzeln. Wobei ich allerdings sagen muss, dass mir ein vernünftiger Profiler da mehr gebracht hat als low level Optimierung &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 14 Nov 2006 10:34:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3773505.html#3773505</guid>
      <dc:creator>Nagelfar</dc:creator>
      <dc:date>2006-11-14T10:34:36Z</dc:date>
    </item>
    <item>
      <title>Re(13): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3773513.html#3773513</link>
      <description>Da hätt jetzt eigentlich ein laaaanges Posting herkommen sollen aber ich machs kurz: ich stimm dir (an sich) zu 100% zu, sei es was es Erfahrung, Algos, Standardwerke, whatever betrifft. Ich wollte nur hinweisen, dass du dich gerade (meiner Meinung nach) in etwas verrennst &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Trotz allem gibt's manchmal den Bedarf, auch wirklich in die letzte Ebene&lt;br&gt;runterzugehen... Und da wird man halt gerne unterstützt. Bei mir halt&lt;br&gt;persönlich wegen Handy-Gschichtln...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Genau der Grund, warum diese Diskussion mir Spaß macht, ich hab mit dem GP2x nämlich gerade auch ein limitiertes Gerät (wenn auch nicht so schlimm wie ein Handy) für ein Privatprojekt in der Reißen und versuch auch aus dem die letzten frames rauszukitzeln. Wobei ich allerdings sagen muss, dass mir ein vernünftiger Profiler da mehr gebracht hat als low level Optimierung &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 14 Nov 2006 10:34:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3773513.html#3773513</guid>
      <dc:creator>Nagelfar</dc:creator>
      <dc:date>2006-11-14T10:34:36Z</dc:date>
    </item>
    <item>
      <title>Re(12): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3772025.html#3772025</link>
      <description>&lt;blockquote&gt;&lt;br&gt;gleichzeitig bist du aber auch einer der ewigen gestrigen (nicht falsch verstehen) der nicht akzeptieren kann, dass nicht alles, was früher gut und unabdingbar war auch heute noch 1:1 gelten muss&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Touche - Da triffst einen wunden Punkt... Früher dachte ich ähnlich über Saurier &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;Gleichzeitig war es aber so, daß mein Code/meine Projekte früher sicherlich schlechter waren als heute, sei es in Bezug auf Wartbarkeit, Erweiterbarkeit, ... Ich bin also echt überzeugt, daß meine Qualifikation durch die Jahre gestiegen ist (Garantie gibt's keine), merke aber auch selbst, daß ich mich auf den Saurierstatus hinentwickel &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;Tatsächlich - so meine Vermutung/Rechtfertigung vor mir selber - bleiben /in einigen Fällen/ genau dieselben Probleme bestehen... Beispiel:&lt;br&gt;&lt;br&gt;Meine Fixe Überzeugung war früher, daß du keine Chance hast, guten Code zu schreiben, wenn du dich nicht durch Knuth's "Art of Computer Programming" durchgeackert hast... Insbesondere Teil 2 und 3 fand ich entscheidend und blätterte oft nach (ja, mein Hirn ist ein Sieb ,-) ). &lt;br&gt;&lt;br&gt;Ich gebe gerne zu, daß das heute nicht mehr zwingend notwendig ist, daß das Verständnis seiner - obwohl uralten - Algorithmen heute noch eine sehr starke Unterstützung darstellt...&lt;br&gt;&lt;br&gt;Wo ich hinwill:&lt;br&gt;Wirklich vieles wird obsolet - klar.&lt;br&gt;Keinesfalls wird aber &lt;b&gt;alles&lt;/b&gt; obsolet.&lt;br&gt;&lt;br&gt;Und... Es gibt ja sicherlich gute Gründe, warum man auf einiges verzichtet hat... Man muß die Meinung deswegen ja nicht teilen, aber es hilft i.d.R. immer fundamental, wenn man die Gedankengänge einiger Überlegungen nachvollziehen kann... Und genau darum geht's mir: echt.&lt;br&gt;&lt;br&gt;Ist genauso wie im Job: Wenn du eine Shice-Hackn bekommst, deren Sinn du nicht verstehst (weil er Dir zB nicht mitgeteilt wird und es so mal krass idiotisch klingt), dann gehst ganz anders an die Sache ran, als wenn du dieselbe Hackn bekommst und Dir erklärt wird, warum das jetzt leider genau so gelöst werden muß.&lt;br&gt;&lt;br&gt;Abschließend:&lt;br&gt;Natürlich hast du recht, daß Lowlevel-Optimieren immer der allerallerletzte Optimierungsschritt sein muß, und vorher wirklich massiv anderes passieren muß... Trotz allem gibt's manchmal den Bedarf, auch wirklich in die letzte Ebene runterzugehen... Und da wird man halt gerne unterstützt. Bei mir halt persönlich wegen Handy-Gschichtln...&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 15:52:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3772025.html#3772025</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T15:52:36Z</dc:date>
    </item>
    <item>
      <title>Re(12): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3772020.html#3772020</link>
      <description>&lt;blockquote&gt;&lt;br&gt;gleichzeitig bist du aber auch einer der ewigen gestrigen (nicht falsch verstehen) der nicht akzeptieren kann, dass nicht alles, was früher gut und unabdingbar war auch heute noch 1:1 gelten muss&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Touche - Da triffst einen wunden Punkt... Früher dachte ich ähnlich über Saurier &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;Gleichzeitig war es aber so, daß mein Code/meine Projekte früher sicherlich schlechter waren als heute, sei es in Bezug auf Wartbarkeit, Erweiterbarkeit, ... Ich bin also echt überzeugt, daß meine Qualifikation durch die Jahre gestiegen ist (Garantie gibt's keine), merke aber auch selbst, daß ich mich auf den Saurierstatus hinentwickel &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;Tatsächlich - so meine Vermutung/Rechtfertigung vor mir selber - bleiben /in einigen Fällen/ genau dieselben Probleme bestehen... Beispiel:&lt;br&gt;&lt;br&gt;Meine Fixe Überzeugung war früher, daß du keine Chance hast, guten Code zu schreiben, wenn du dich nicht durch Knuth's "Art of Computer Programming" durchgeackert hast... Insbesondere Teil 2 und 3 fand ich entscheidend und blätterte oft nach (ja, mein Hirn ist ein Sieb ,-) ). &lt;br&gt;&lt;br&gt;Ich gebe gerne zu, daß das heute nicht mehr zwingend notwendig ist, daß das Verständnis seiner - obwohl uralten - Algorithmen heute noch eine sehr starke Unterstützung darstellt...&lt;br&gt;&lt;br&gt;Wo ich hinwill:&lt;br&gt;Wirklich vieles wird obsolet - klar.&lt;br&gt;Keinesfalls wird aber &lt;b&gt;alles&lt;/b&gt; obsolet.&lt;br&gt;&lt;br&gt;Und... Es gibt ja sicherlich gute Gründe, warum man auf einiges verzichtet hat... Man muß die Meinung deswegen ja nicht teilen, aber es hilft i.d.R. immer fundamental, wenn man die Gedankengänge einiger überlegungen nachvollziehen kann... Und genau darum geht's mir: echt.&lt;br&gt;&lt;br&gt;Ist genauso wie im Job: Wenn du eine Shice-Hackn bekommst, deren Sinn du nicht verstehst (weil er Dir zB nicht mitgeteilt wird und es so mal krass idiotisch klingt), dann gehst ganz anders an die Sache ran, als wenn du dieselbe Hackn bekommst und Dir erklärt wird, warum daß jetzt leider genau so gelöst werden muß.&lt;br&gt;&lt;br&gt;Abschließend:&lt;br&gt;Natürlich hast du recht, daß Lowlevel-Optimieren immer der allerallerletzte Optimierungsschritt sein muß, und vorher wirklich massiv anderes passieren muß... Trotz allem gibt's manchmal den Bedarf, auch wirklich in die letzte Ebene runterzugehen... Und da wird man halt gerne unterstützt. Bei mir halt persönlich wegen Handy-Gschichtln...&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 15:52:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3772020.html#3772020</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T15:52:36Z</dc:date>
    </item>
    <item>
      <title>Re(11): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3771821.html#3771821</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Nun ja... Liebgewonnenes wie Compilerswitches möchte man natürlich woanders&lt;br&gt;nicht missen... Insbesondere wenn es - wahrscheinlich -&amp;nbsp;&amp;nbsp;nicht schwer zu&lt;br&gt;implementieren wäre.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Und insbesondere, weil sie eben nicht wirklich notwendig sind, solltest du froh sein, dass es sie nicht in diesem unüberschaubaren Umfang wie in vielen anderen Sprachen gibt.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Wobei Dich Designpatterns und "bekannte Algorithmen" darin unterstützen,&lt;br&gt;sauberen Code zu schreiben.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Jetzt sind ma uns ehrlich, DP schön und gut aber ich behaupte mal, wenn du dir jetzt mal 99% des normalen Codes anschaust, da wird Zeit verbraten mit unnötigen Checks, mit hinrissen Schleifen oder mit Millionen unnötiger lokaler Variablen der Anlegen und Abbauen immens mehr Zeit und Speicher braucht als die Frage, ob jetzt mein div 2 so oder so gemacht wird.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Warum fühlen sich eigentlich Javianer angegriffen, wenn man manche Konzepte&lt;br&gt;von Java für nicht super findet ?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Ich fühl mich nicht angegriffen (persönlich jetzt) sondern ich find Leute, sagen wir mal "anstrengend", die von ihrem Punkt einfach nicht abrücken, nur weil sie es halt "so gewohnt sind" auch wenn man ihnen einige gute Argumente liefert, warum dieser Punkt in diesem Umfeld nicht valid ist.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Jedenfalls war mein Initialposting kein Angriff auf die Sprache - sondern ein&lt;br&gt;(eventuell provokant gebrachtes) Auseinandersetzen von mir mit für mich&lt;br&gt;unüblichen Vorgehensweisen in der JavaWelt. &lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Ja, dein Initialposting war das, vor allem deine letzteren postings ähneln eher einem Kleinkind, dem an ein gewisses Spielzeug nicht geben will und das jetzt quängelt: ich will das aber ich will das aber, der Peter von den Nachbarn hat das auch.&lt;br&gt;&lt;br&gt;Du hast augenscheinlich großes Fachwissen, welches das meinige vor allem bei den Lowlevel Sachen deutlichst übersteigen dürfte, gleichzeitig bist du aber auch einer der ewigen gestrigen (nicht falsch verstehen) der nicht akzeptieren kann, dass nicht alles, was früher gut und unabdingbar war auch heute noch 1:1 gelten muss. Das zeigt auch deine, wenn auch augenzwinkernde, Erwähnung Perl und Algol.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; andererseits schlicht wegen der Useranzahl bei Enterprise-Apps... Wenn eine&lt;br&gt;Optimierung nur 1ms Geschwindigkeit pro Zugriff erspart - und 1000 User&lt;br&gt;parallel zugreifen - fällt das ganz schnell wieder ins Gewicht ...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Sry, aber ich glaub bei einer Enterprise App mit 1k conc. usersn kommts nicht drauf an ob du ein loop unrolling oder ein div 2 machst, da sind die bottlenecks in ganz anderen Bereichen. Meine Meinung.&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 14:42:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3771821.html#3771821</guid>
      <dc:creator>Nagelfar</dc:creator>
      <dc:date>2006-11-13T14:42:00Z</dc:date>
    </item>
    <item>
      <title>Re(10): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3771795.html#3771795</link>
      <description>&lt;blockquote id="1"&gt;&lt;br&gt;Warum ist es immer mit euch Leuten aus der C/C++ Welt, dass ihr manche Gegebenheiten nicht einfach als gegeben hinnehmen könnt und krampfhaft immer versuchen müsst, das, was ihr halt von eurer "alten" Umgebung kennt, auf Biegen und Brechen auch sonst überall unterzubringen?&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Nun ja... Liebgewonnenes wie Compilerswitches möchte man natürlich woanders nicht missen... Insbesondere wenn es - wahrscheinlich -&amp;nbsp;&amp;nbsp;nicht schwer zu implementieren wäre.&lt;br&gt;&lt;br&gt;&lt;blockquote id="2"&gt;&lt;br&gt;... der großteil der Laufzeit in deinem eigenen schnell hingeschluderten Sch.eißcode verbraten wird&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Das ist nun mal kein Java-Phänomen sondern gilt wohl generell... &lt;br&gt;Wobei Dich Designpatterns und "bekannte Algorithmen" darin unterstützen, sauberen Code zu schreiben... Insbesondere unter Java finde zB die Collections eine gute Idee, einem Coder ohne Aufwand verschiedene mächtige Storagegschichterln (Hashmap, Hashset, ..) zur Verfügung zu stellen, die sich -leider- einige C-Coder nicht antaten.&lt;br&gt;&lt;br&gt;Warum fühlen sich eigentlich Javianer angegriffen, wenn man manche Konzepte von Java für nicht super findet ? Es gibt wohl keine perfekte Sprache, die alle denkbaren Vorteile in sich vereinigt (Algol, Haskell und Perl mal ausgenommen &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt; ). &lt;br&gt;Definitiv ist es eine Frage der Aufgabenstellung, definitiv ist Java eine eigene Welt, bei der sehr vieles anders gelöst wird als in der "guten Standard-EDV", wogegen mal per se nichts einzuwenden ist. Tatsächlich modifiziert sich aber Java - gottseidank - und ist nicht bei 1.0 stehengeblieben... Und das eben genau weil viele (wohl größtenteils Java-Entwickler, da sie sonst kein Gehör gefunden hätten) &lt;i&gt;Gegebenheiten nicht einfach als gegeben hinnehmen konnten&lt;/i&gt; &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;.&lt;br&gt;&lt;br&gt;Jedenfalls war mein Initialposting kein Angriff auf die Sprache - sondern ein (eventuell provokant gebrachtes) Auseinandersetzen von mir mit für mich unüblichen Vorgehensweisen in der JavaWelt. Tatsächlich half zB adhoc ja auch beim lösen des switch()-Statements... Seine Erklärung dürfte es wohl sein.&lt;br&gt;&lt;br&gt;Dein&amp;nbsp;&amp;nbsp;Argument "Der Algo entscheidet" gilt natürlich grundsätzlich - aber auch wenn du einen sauberen, performanten Algo gefunden hast, gilt es - öfters - den Lowlevel zu optimieren.... Einerseits wegen KVM, andererseits schlicht wegen der Useranzahl bei Enterprise-Apps... Wenn eine Optimierung nur 1ms Geschwindigkeit pro Zugriff erspart - und 1000 User parallel zugreifen - fällt das ganz schnell wieder ins Gewicht ...&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 14:29:45 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3771795.html#3771795</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T14:29:45Z</dc:date>
    </item>
    <item>
      <title>Re(8): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3771349.html#3771349</link>
      <description>Wenn dem so wäre, dürften sie das nicht als generellen Optimierungstipp verkaufen...&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 11:34:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3771349.html#3771349</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T11:34:12Z</dc:date>
    </item>
    <item>
      <title>Re(7): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3771303.html#3771303</link>
      <description>&gt;Sachen wie "/2" finde ich aber sträflich nachlässig...&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;und wenn es (theoretisch) eine CPU gibt, bei der DIV 2 schneller ist als SHR...&lt;br&gt;??&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 11:15:50 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3771303.html#3771303</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-13T11:15:50Z</dc:date>
    </item>
    <item>
      <title>Re(6): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3771014.html#3771014</link>
      <description>Doch... Denn die CPU ist ja klar - eine (virtuelle) JavaCPU.&lt;br&gt;&lt;br&gt;Und loop-Unrolling... Hätte ich gerne als -O2 -Switch wie beim gcc... &lt;br&gt;Denn manuelles Loop-Unrolling im Source ist sicher falsch - denn dann wird's ja ziemlich unwartbar.&lt;br&gt;&lt;br&gt;Sachen wie "/2" finde ich aber sträflich nachlässig...&amp;nbsp;&amp;nbsp;Anyways, mit deinem DEC statt CMP hast zumindest eine Erklärung gebracht, die man nachvollziehen kann,... Danke!&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 09:14:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3771014.html#3771014</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T09:14:52Z</dc:date>
    </item>
    <item>
      <title>Re(5): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770991.html#3770991</link>
      <description>&gt;wann immer es garantiert Sinn macht... &lt;br&gt;&lt;br&gt;Loop unrolling... &lt;br&gt;&lt;br&gt;da wird ja schonmal das classfile größer ...&lt;br&gt;was u.U. schon wieder negativ sein könnt...&lt;br&gt;&lt;br&gt;&gt; (deine Interpretation mit "Ersetze CMP durch einige DEC (die das Zeroflag beeinflussen&lt;br&gt;&gt; (machen net alle Prozzies so - zB der Z80 nur wenn du ein 8bit-Register dekrementierst, &lt;br&gt;&gt;nicht aber bei 16bit-Registerpaaren) - könnte bei dem virtuellen Prozzi echt so sein) - &gt;dann wird's ja doppelt Schräg.&lt;br&gt;&lt;br&gt;genaus wegen solchen sachen&amp;nbsp;&amp;nbsp;bin ich ja der meinung, dass der JIT bzw. interpreter optimieren soll.. (weil der compiler ja keine ahnung hat auf welche CPU optimiert werden soll...)&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 09:01:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770991.html#3770991</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-13T09:01:31Z</dc:date>
    </item>
    <item>
      <title>Re(5): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770990.html#3770990</link>
      <description>&gt;wann immer es garantiert Sinn macht... &lt;br&gt;&lt;br&gt;Loop unrolling... &lt;br&gt;&lt;br&gt;da wird ja schonmal das classfile größer ...&lt;br&gt;was u.U. schon wieder negativ sein könnt...&lt;br&gt;&lt;br&gt;&lt;img src="angry.gif" width="16" height="19" align="absmiddle" alt="&amp;gt;-("/&gt;deine Interpretation mit "Ersetze CMP durch einige DEC (die das Zeroflag beeinflussen&lt;br&gt;&lt;img src="angry.gif" width="16" height="19" align="absmiddle" alt="&amp;gt;-("/&gt;machen net alle Prozzies so - zB der Z80 nur wenn du ein 8bit-Register dekrementierst, &lt;br&gt;&gt;nicht aber bei 16bit-Registerpaaren) - könnte bei dem virtuellen Prozzi echt so sein) - &gt;dann wird's ja doppelt Schräg.&lt;br&gt;&lt;br&gt;genaus wegen solchen sachen&amp;nbsp;&amp;nbsp;bin ich ja der meinung, dass der JIT bzw. interpreter optimieren soll.. (weil der compiler ja keine ahnung hat auf welche CPU optimiert werden soll...)&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 09:01:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770990.html#3770990</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-13T09:01:31Z</dc:date>
    </item>
    <item>
      <title>Re(4): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770976.html#3770976</link>
      <description>@1+2: Määäächtig wichtig &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 08:52:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770976.html#3770976</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T08:52:28Z</dc:date>
    </item>
    <item>
      <title>Re(4): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770973.html#3770973</link>
      <description>Yup... der Compiler soll optimieren, wann immer es garantiert Sinn macht... Spricht ja nix dagegen, kostet net viel - und kann einiges.&lt;br&gt;&lt;br&gt;Es soll einfach immer der Grundgedanke gelten "Beim kompilieren hast Zeit, zur Laufzeit net"...&lt;br&gt;Und wenn es schon so seltsame Phänomene gibt wie "naheliegende Werte sind schneller verglichen" (deine Interpretation mit "Ersetze CMP durch einige DEC (die das Zeroflag beeinflussen(machen net alle Prozzies so - zB der Z80 nur wenn du ein 8bit-Register dekrementierst, nicht aber bei 16bit-Registerpaaren) - könnte bei dem virtuellen Prozzi echt so sein) - dann wird's ja doppelt Schräg.&lt;br&gt;&lt;br&gt;Denn das bedeutet nichts anderes, als daß er switch() gut optimiert - wärend er es bei "/2" nicht macht... Und Divisionen durch 2 sind ja nicht mal soooo selten - das kann schon mal vorkommen.&lt;br&gt;&lt;br&gt;@nachtrag:&lt;br&gt;Die "unabwägbarkeiten" sind nicht so selten... Denn IMHO sind java-Spiele sicher nicht soooo selten bzw. werden nicht in geringer Stückzahl entwickelt/verkauft... Und genau diese Spielchen tragen sicher auch zur Popularität der Sprache bei - beginnend mit Applets (da gibt's wohl ein Verhältnis von mehr als 1000:1 bei Spielkram:"sinnvolle Anwendung").&lt;br/&gt;</description>
      <pubDate>Mon, 13 Nov 2006 08:51:59 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770973.html#3770973</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-13T08:51:59Z</dc:date>
    </item>
    <item>
      <title>Re(3): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770500.html#3770500</link>
      <description>&gt;@1: Weil ich nicht von einem KIT ausgehen kann, weil&lt;br&gt;&gt;- er ja bewußt abgeschalten sein könnte (-Xint gibt's ja net sinnlos)&lt;br&gt;&gt;- weil es ihn für die Plattform nicht geben muß (zB J2ME gibt's afaik keine)&lt;br&gt;&gt;- weil auch ein JIT-Compile Zeit kostet.&lt;br&gt;&lt;br&gt;&lt;br&gt;nachtrag: du akzepierst also solche "unabwegbarkeiten" welche zu&amp;nbsp;&amp;nbsp;geschwindingkeits unterschieden von sicher mehreren 100% führen ...&lt;br&gt;&lt;br&gt;aber der compiler muss alles optimieren um in bestimmten (seltenen) extremfällen ein paar prozent rauszuholen .... &lt;br&gt;&lt;br&gt;also ich weis nicht..&lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 20:30:13 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770500.html#3770500</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-12T20:30:13Z</dc:date>
    </item>
    <item>
      <title>Re(3): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770397.html#3770397</link>
      <description>@1 und 2: damit beim decompilieren wieder schöner code raus kommt &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;@3: du könntest AX jeweils mit 0 vergleichen und dann um eins decrementieren ... (so ungefähr..)&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 19:37:26 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770397.html#3770397</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-12T19:37:26Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770383.html#3770383</link>
      <description>@1: Weil ich nicht von einem KIT ausgehen kann, weil&lt;br&gt; - er ja bewußt abgeschalten sein könnte (-Xint gibt's ja net sinnlos)&lt;br&gt; - weil es ihn für die Plattform nicht geben muß (zB J2ME gibt's afaik keine)&lt;br&gt; - weil auch ein JIT-Compile Zeit kostet.&lt;br&gt;&lt;br&gt;@2: Warum soll ich da einen JIT bemühen müssen ? Wenn immer a schneller als b ist - dann soll der Compiler a erzeugen... Dazu leistet man sich eben optimierende Compiler, und C-Compiler bekommen das seit den 70ern hin...&lt;br&gt;&lt;br&gt;@3:Das verstehe ich eben nicht... Typischerweise sieht's in Assembler wohl so aus:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
LDAX #Wert&#xD;
CMP #0x12345678&#xD;
JMPZ, SPRINGE_ZU_1&#xD;
CMP #0x123&#xD;
JMPZ, SPRINGE_ZU_2&#xD;
...&#xD;
_DEFAULT_CODE_&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;Ich kenne echt keine andere Methode, wie man SWITCH-Statements umsetzt... &lt;br&gt;und mir fällt echt keine Situation ein, wo _nahe_ beieinander liegende Werte leichter/schneller checkbar wären..&lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 19:32:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770383.html#3770383</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-12T19:32:28Z</dc:date>
    </item>
    <item>
      <title>Re: Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770361.html#3770361</link>
      <description>@1: warum (zum teufel) soll das schon der compiler machen (des geht beim JIT oder interpretieren) doch genauso/besser... (hab den bericht nicht gelesen, ob der JIT bzw. interpreter das macht?? )&lt;br&gt;&lt;br&gt;@2: siehe @1&lt;br&gt;&lt;br&gt;@3: es geht wohl nicht um "nahe" beieinander, sonder um DIREKT hintereinader, in diesem fall wird wohl optimiert (was du bei 1 und 2 vermisst, ist bei 3 plötzlich "schlecht" ???)&lt;br&gt;&lt;br&gt;&lt;br&gt;interessant ist diese "optimierung" wohl wirklich nur bei java/handy games ??&amp;nbsp;&amp;nbsp;usw. &lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 19:25:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770361.html#3770361</guid>
      <dc:creator>adhoc</dc:creator>
      <dc:date>2006-11-12T19:25:02Z</dc:date>
    </item>
    <item>
      <title>Re(4): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3770228.html#3770228</link>
      <description>Also wenn das Java machen würde, daß integer variabel groß wären - wäre es eine saudumme unanwendbare Sprache... Denn woher wollte java wissen, ob man das Compilat nicht doch mal von einem anderen Jar aus aufruft... wo dann doch größere Werte herkommen ???&lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 18:16:04 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3770228.html#3770228</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-12T18:16:04Z</dc:date>
    </item>
    <item>
      <title>Re(3): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3769568.html#3769568</link>
      <description>naja evtl optimiert java (gerade bei mobiles) die (integer) werte noch einmal, so das nicht immer fest 4 bytes reserviert werden sondern halt nur das, was auch nur als minimum gebraucht wird. &lt;br&gt;&lt;br&gt;aber k.a. ... mein erstes und einziges java programm ist schon ein paar jährchen her (schätzungsweise mind 4 oder 5 jahre)&lt;br&gt;&lt;br&gt;Mfg.&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 12 Nov 2006 11:59:47 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3769568.html#3769568</guid>
      <dc:creator>Einbeiniger</dc:creator>
      <dc:date>2006-11-12T11:59:47Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3768342.html#3768342</link>
      <description>Nun ja...&lt;br&gt;&lt;br&gt;Ich habe ja von J2ME gesprochen, also der Microedition auf Handies, ... Und dort ist die Performance-Gschicht echt entscheidend.... Denn die CPUs sind langsam, ne KVM ist auch nicht sehr flott... Und wenn du ein JavaGame schreiben willst, brauchst - so es ein "Echtzeitgame" wird - mindestens 10fps, also maximal 100ms für die Gameloop - das ist echt knapp.&lt;br&gt;&lt;br&gt;Ad 3: Sehe ich nicht so:&lt;br&gt;Ein int ist IMHO fix 4 Byte bei Java - also muß er so oder so 4 Bytes vergleichen. Die Größe der Werte (also ob zB 1 oder 1000 drin ist - muß dann normalerweise wurscht sein.&lt;br/&gt;</description>
      <pubDate>Sat, 11 Nov 2006 14:07:08 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3768342.html#3768342</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-11T14:07:08Z</dc:date>
    </item>
    <item>
      <title>Re: Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3767668.html#3767668</link>
      <description>Das erinnert mich daran das mich mir Java irgendwann mal wieder vornehmen muss. &lt;br&gt;.. irgendwann .. &lt;br&gt;&lt;br&gt;@LinuxSuckz&lt;br&gt;die unterschiede wird man selber wohl kaum mitbekommen. ausser evtl man macht millionen von loops etc. im endeffekt wird es eine programm nur sehr unwesentlich und nicht wirklich merkbar verlangsamen. &lt;br&gt;gibt's eigentlich echtzeitanwendungen/-implementationen in/für java? &lt;br&gt;&lt;br&gt;zum 3. kann ich nur sagen das es eigentlich logisch ist, da der compiler bei größeren zahlen für das vergleichen etc mehr speicher braucht. kommentar zur geschwindigkeit siehe oben.&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 11 Nov 2006 02:02:44 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3767668.html#3767668</guid>
      <dc:creator>Einbeiniger</dc:creator>
      <dc:date>2006-11-11T02:02:44Z</dc:date>
    </item>
    <item>
      <title>Re(12): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756288.html#3756288</link>
      <description>Das könnte allerdings sein...&lt;br&gt;&lt;br&gt;Von Leuten, die Ahnung haben, wird ja behauptet, daß der JIT weit besser beim detecten von HotSpots ist als es .NET als Quasi-Vm designmäßig werden kann.&lt;br&gt;&lt;br&gt;Dann wäre halt - gerade mit Rücksicht auf 1000e Jamba-Coder &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt; - eine "Assume-no-JIT"-Option beim javac sinnvoll... beim Java-start kann man ja auch JIT abschalten (-Xint)... Wann macht man das eigentlich ???&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 11:19:04 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756288.html#3756288</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T11:19:04Z</dc:date>
    </item>
    <item>
      <title>Re(10): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756278.html#3756278</link>
      <description>Das gilt bei Maschinensprache... Sicher.&lt;br&gt;&lt;br&gt;Aber bei Interpretierten... kann ich Dir nur langsam folgen...&lt;br&gt;&lt;br&gt;Gehen wir von folgendem aus:&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
for ( f = 1 ; f &amp;lt; 1000 ; f++) {&#xD;
mach_was();&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;Dann müßte - so mach_was teuer ist - automatisch der JIT anspringen, oder ??&lt;br&gt;Wenn ich das unrolle, sieht der JIT statt einem Statement, das 1000x durchlaufen wird (also Kandidat ist) stattdessen 1000 Statements, die alle nur 1x durchlaufen werden... Und er muß dann 1000x übersetzen.&lt;br&gt;&lt;br&gt;Grundsätzlich verstehe ich aber deinen - ausschließlich No-JIT-Punkt... Danke mal.&lt;br&gt;Dann bleibt aber weiterhin die Frage, warum javac keine -funroll-loops - Option kennt &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 11:13:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756278.html#3756278</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T11:13:35Z</dc:date>
    </item>
    <item>
      <title>Re(10): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756271.html#3756271</link>
      <description>&lt;blockquote&gt;&lt;br&gt; nochmal: ich hab keine Ahnung von Bytecode optimierung, null, Nüsse.&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Das macht nichts &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;Du hast bei weitem mehr Ahnung als ich, und wenn ich das Forum mißbrauchen kann um mir das Thema zu erarbeiten - gerne &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt; Neue Ideen lieferst jedenfalls... Und in der Folge bin ich eh schon reduzierter mit den Anforderungen hin zu "ok, dann müssen nur nicht-agressive Optimierungen drin sein" &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;Wenn jedenfalls für Menschen eine Regel aufstellbar ist a la "Unrolle deinen Code" - dann sollte der Compiler das automatisch machen können, wenn du zB "-O" für "Optimiere nach Speed" angibst.... Dasselbe gilt natürlich für alle Regeln wie auch "Verwende &gt;&gt;1 statt /2 bei integer".&lt;br&gt;&lt;br&gt;Oder von mir aus sollte das ganze ein Präprozessor erledigen -&amp;nbsp;&amp;nbsp;quasi genauso wie wenn du deinen Obfuscator in die Chain hängst, solltest du sowas reinhängen können - oder gibt's da eh was von Sun ??&lt;br&gt;&lt;br&gt;Anyways, daß man bei einer Interpretierten Sprache manuell unrollen muß wie bei Asse - finde ich oarg (wobei ich bei letzterem wenigstens Macros dafür aufstellen kann &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt; ).&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 11:08:17 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756271.html#3756271</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T11:08:17Z</dc:date>
    </item>
    <item>
      <title>Re(9): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756184.html#3756184</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Scheinbar ist aber manuelles Loop-Unrolling immer schneller&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Ist doch klar...bei einer Schleife hast du ja noch ein paar Arbeitsschritte mehr (also alles was im for steht...).&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 10:31:18 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756184.html#3756184</guid>
      <dc:creator>mko</dc:creator>
      <dc:date>2006-11-06T10:31:18Z</dc:date>
    </item>
    <item>
      <title>Re(8): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756177.html#3756177</link>
      <description>&lt;blockquote&gt;&lt;br&gt;Optimierung setzt ja jetzt nicht nur rein auf Prozessorebene an, da gehts auch um Threadhandling, Garbage Collection, Fileaccess, Datentypen usw...&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Sowas war eh klar...&lt;br&gt;&lt;br&gt;Nur passieren da 2 Paar Schuhe - zumindest IMHO, aber ich arbeite mich ja erst ein in Java, drum die DAU-Fragen:&lt;br&gt;Einerseits die Optimierungen, die stattfinden um den ByteCode zu erzeugen&lt;br&gt;Andererseits die Optimierungen, die in der VM stattfinden (also JIT, ...).&lt;br&gt;&lt;br&gt;Grundsätzlich gab es (mit einer Ausnahme) immer die Philosophie, daß der Compiler Zeit hat - und der alle Optimierungen für das Zielsystem machen soll. Am Zielsystem soll das Proggy dann so schnell wie möglich laufen. Da Optimierungen Zeit kosten -&gt; Compiler soll sie machen. Das Zielsystem unterstützt nur mit Branch Prediction, L1-Caches, ... Natürlich umso besser, je mehr der Compiler darauf geachtet hat (zB loop-Code in eine Cacheline).&lt;br&gt;&lt;br&gt;Die Einzige Ausnahme, mit der ich mich vorher mal befaßte, war EPIC... Da konnte der Compiler einiges nicht sinnvoll optimieren beim setzen seiner Tags.&lt;br&gt;&lt;br&gt;Bei Java bin ich nun davon ausgegangen, daß zumindest immer derselbe Weg der schneller sein wird.&lt;br&gt;Beispiel:&lt;br&gt;In dem Link wurde gebracht, daß ein&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;for (f = 0 ; f &amp;lt; 10 ; f++) { machWas(); }&lt;/pre&gt;&lt;/div&gt; langsamer sei als &lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;machWas();machWas();machWas();machWas();machWas();machWas();machWas();machWas();machWas();machWas();&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;Abgesehen davon, daß ich das echt pervers finde (trickse ich mit sowas den eventuell vorhandenen&amp;nbsp;&amp;nbsp;JIT aus ???? Oder auch ohne JIT: Wieso ist 10x interpretieren schneller als die Loop?) - so rennen doch J2MEs auf unterschiedlichen Prozessoren, handy-Ossen, ... Scheinbar ist aber manuelles Loop-Unrolling immer schneller... So behauptet zumindest der Link. Nun denn, dann soll es aber der Compiler machen &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 10:27:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756177.html#3756177</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T10:27:31Z</dc:date>
    </item>
    <item>
      <title>Re(6): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756132.html#3756132</link>
      <description>Echt ?&lt;br&gt;Ist mir nicht aufgefallen... Ich vermutete das Gegenteil &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br&gt;&lt;br&gt;Begründung - rein aus der Intel-Welt:&lt;br&gt;Wenn du Assembler gecodet hast, dann gab es massiv Unterschiede zwischen den CPUs...&lt;br&gt;Hausnummer:&lt;br&gt;Bis zu einem 80286 war es schneller, den Akkumulator mit&amp;nbsp;&amp;nbsp;"XOR AX,AX" zu löschen, wärend es ab dann mit einem "MOV AX,0" schneller ging.&lt;br&gt;Besonders krass wurde es mit dem PentiumII, bei dem Zugriffe via&amp;nbsp;&amp;nbsp;GS-Register mit einem ordentlichen Straffaktor an Zeit (IMHO sogar so krass wie 50 oder so) geahndet wurden.&lt;br&gt;&lt;br&gt;Dementsprechend werden ja CPU-Intensive binaries gerne auch pro CPU übersetzt... Nur bei SunJava eben nicht. Ich halte es zwar durchaus für möglich, daß in dem Binary Verzweigungen existieren a la "Wenn du ein 386er bist, mach es auf Weg a, wenn du ein Pentium bist auf Weg b, ..." - halte es aber für unwahrscheinlich.&lt;br&gt;&lt;br&gt;&lt;br&gt;Abschließend:&lt;br&gt;Besonders unwahrscheinlich halte ich es, wenn bei derselben VM verschiedene Wege auf verschiedenen Systemen bevorzugbar wären... Wenn man also zB sagen würde "Auf Sun-Rechnern ist es besser, mit Strings herumzuarbeiten als mit Stringbuffern"... Ist dem so ? Glaube ich eben nicht... Und drum könnte hier die "-O3"-Operation ins Spiel kommen - a la "ersetze Stringzugriffe durch Stringbuffer", genauso wie ein gcc-C-compiler auch mal bei Integer-Operationen gerne die FPU "mißbraucht", wenn es im Kontext schneller ist...&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 10:12:34 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756132.html#3756132</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T10:12:34Z</dc:date>
    </item>
    <item>
      <title>Re(4): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756104.html#3756104</link>
      <description>&lt;blockquote id="1"&gt;&lt;br&gt;Und grade was &gt;&gt; und /2 betrifft bin ich mir jetzt nicht sicher ob das nicht ein J2ME Spezifikum ist.&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Glaube ich nicht... Würde mich zumindest überraschen. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote id="2"&gt;&lt;br&gt;Sry, das ist Blödsinn. Ich kenn viele Projekte, die auf verschiedenen Plattformen laufen.&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Aber meist auf denselben JavaVMs, oder ?&lt;br&gt;die JavaRuntime ist ja nicht nur eine Bibliothekensammlung - sondern stellt einen Virtuellen Prozzi mit virtuellem OS dar. Also müßte die Optimierung logischerweise zB "Optimize-for-1.4" lauten... und nicht "Optimize-for-RS/6000".&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 10:04:13 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756104.html#3756104</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T10:04:13Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3756062.html#3756062</link>
      <description>Das war eh klar...&lt;br&gt;&lt;br&gt;Und es ist mir auch klar, daß ein javac nicht automatisch loop-unrolling machen dürfte... sondern daß das - so wie beim gcc - eine extra-Option sein müßte.&lt;br&gt;&lt;br&gt;Also im Endeffekt würde ich mir von einem javac so Optionen wie beim gcc wünschen "-Os" (optimieren auf Platz), "-O" (standard-Optimierungen) "-O2" (&lt;font color="#FF00FF"&gt;&lt;span class="piep" title="agressiv"&gt;*TR&amp;Ouml;T*&lt;/span&gt;&lt;/font&gt; nach speed), "-O3" (Optimierungen, die den Programmablauf modifizieren könnten).&lt;br&gt;&lt;br&gt;Aber wenn ein "&gt;&gt;" immer schneller als ein "/2" ist, dann sollte der Compiler in allen Fällen "&gt;&gt;" verwenden.&lt;br&gt;Und nachdem die Zielplattform in Wirklichkeit immer dieselbe ist (nämlich eine spezifische VM), könnte er auch - zumindest einige - agressive Optimierungen durchführen.&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 09:49:40 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3756062.html#3756062</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T09:49:40Z</dc:date>
    </item>
    <item>
      <title>Re(3): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3755857.html#3755857</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Und gerade der JIT widerspricht deinem letzten Absatz/Argument:&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Wir reden jetzt aber von byte Code und nicht von JIT! Der Artikel bezieht sich scheinbar auf byte Code. Und kürzere Opcode ist schneller als längerer Opcode - so interpretiere ich dies.&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 07:40:21 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3755857.html#3755857</guid>
      <dc:creator>nergal</dc:creator>
      <dc:date>2006-11-06T07:40:21Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3755841.html#3755841</link>
      <description>Nun ja...&lt;br&gt;&lt;br&gt;Erstens ist AFAIK JIT kein Muß bei einer JavaVM... Sondern nur ein "should" oder so.&lt;br&gt;Also auf JIT verlassen sollte nicht sein.&lt;br&gt;&lt;br&gt;Und gerade der JIT widerspricht deinem letzten Absatz/Argument:&lt;br&gt;Wenn man 2 ints vergleicht geht das auf einem 32bit-prozzi weit schneller als wenn man 2 Bytes vergleicht... Des weiteren wäre dann die Doku ungenau, denn dein Argument würde bedeuten, daß nicht der Abstand der Werte bedeutend sei, sondern ob wert&amp;0xffffff00 dasselbe ergibt. Also ein switch mit 1 und 2 wäre gut, eines mit 255 und 256 schlecht... Davon sagt die Doku aber nix.&lt;br&gt;&lt;br&gt;Abschließend:&lt;br&gt;wenn &gt;&gt; besser als /2 ist - dann soll IMHO ein Compiler selbständig den besseren Code erzeugen und net erst nachher der JIT das uU ausbügeln... Da paßt was echt net an javac&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 07:15:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3755841.html#3755841</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-06T07:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3755828.html#3755828</link>
      <description>Ich gebe zu, ich habe den Artikel&amp;nbsp;&amp;nbsp;aus Zeitgründen nicht gelesen.&lt;br&gt;&lt;br&gt;Aber folgendes ist zu bedenken:&lt;br&gt;&lt;br&gt;MicroJava (besser gesagt die Runtime) ist eher eine eingeschränkte Java Umgebung. Diese Beschränkungen gelten scheinbar auch für die Optimierungen. Gibt es JIT Compilation unter MicroJava?&lt;br&gt;&lt;br&gt;Bei Java am Desktop ist eigentlich der JIT (Just in Time) Compiler mit dem alles steht und fällt. Dieser übersetzt den P-Code in native Code. Und dieser dürfte zwischenzeitlich nicht so schlecht sei, was die Code-Qualität betrifft.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Was ist denn das für eine schräge Sprache ? Ich mein,alles sind ints, und&lt;br&gt;switch()-Statements sind unterschiedlich schnell, je nachdem ob&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Den Absatz verstehe ich so - wenn die int nahe zusammenliegen kann&amp;nbsp;&amp;nbsp;scheinbar eine kürzerer Opcode-Folge erzeugen werden, da vielleicht nur mehr ein byte für einen codierten case-Wert nötig ist. Bei größeren Werten sind 4 bytes von Nöten für einen case-Wert.&lt;br/&gt;</description>
      <pubDate>Mon, 06 Nov 2006 05:31:48 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3755828.html#3755828</guid>
      <dc:creator>nergal</dc:creator>
      <dc:date>2006-11-06T05:31:48Z</dc:date>
    </item>
    <item>
      <title>Re: Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3755630.html#3755630</link>
      <description>Erzähl das ihm: &lt;a href="http://forum.geizhals.at/userinfo.jsp?id=85411" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;userinfo.jsp?&lt;wbr/&gt;id=85411&lt;/a&gt; &lt;br&gt;&lt;br&gt;Solltest aber auf Selbstgespräche stehen &lt;img src="birndl.gif" width="16" height="26" align="absmiddle" alt="!&amp;#58;-&amp;#41;"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 05 Nov 2006 21:59:03 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3755630.html#3755630</guid>
      <dc:creator>Wizard51</dc:creator>
      <dc:date>2006-11-05T21:59:03Z</dc:date>
    </item>
    <item>
      <title>Java ist ne verrückte Sprache....</title>
      <link>http://forum.geizhals.at/t455777,3755616.html#3755616</link>
      <description>Ausgehend von der Idee, daß Java ja eine kompilierte Sprache ist, macht der Compiler in P-Code recht wenig...&lt;br&gt;&lt;br&gt;Ich bin mal über &lt;a href="http://www.microjava.com/articles/techtalk/optimization?PageNo=4" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.microjava.com/&lt;wbr/&gt;articles/&lt;wbr/&gt;techtalk/&lt;wbr/&gt;optimization?&lt;wbr/&gt;PageNo=4&lt;/a&gt;&amp;nbsp;&amp;nbsp;gestolpert - Optimierungstechniken für J2ME (bzw. Java generell).&lt;br&gt;&lt;br&gt;Was ich wirklich krass finde:&lt;br&gt;1.) Loop unrolling... Muß der Coder selbst machen, der Compiler kriegt das net hin ???&lt;br&gt;2.) &gt;&gt; ist schneller als ne Division ? Warum um Himmels willen... Ich meine, klar auf Assemblerebene und von mir aus auf P-Code-Ebene... Nur jeder normale C-Compiler wandelt sowas um, warum net javac ?&lt;br&gt;3.) Das IMHO allerkrasseste:&lt;br&gt;&lt;blockquote&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_RUNNING = 1000;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_JUMPING = 2000;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_SHOOTING = 3000;&lt;br&gt;&amp;nbsp;&amp;nbsp;switch ( n ) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case STATE_RUNNING:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doRun();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case STATE_JUMPING:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doJump();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case STATE_SHOOTING:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doShoot();&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;There's nothing wrong with this, and the int constants are nice and far apart, in case we might want to stick another constant in between RUNNING and JUMPING, like STATE_DUCKING = 2500. But apparently switch statements can be compiled into one of two byte codes, and the faster of the two is used if the ints used are close together, so this would be better:&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_RUNNING = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_JUMPING = 2;&lt;br&gt;&amp;nbsp;&amp;nbsp;public static final int STATE_SHOOTING = 3;&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Was ist denn das für eine schräge Sprache ? Ich mein,alles sind ints, und switch()-Statements sind unterschiedlich schnell, je nachdem ob die Werte näher sind ???&lt;br&gt;&lt;br&gt;Man muß sich direkt mal Java-PCode-Assembler ansehen, der muß ja krank sein &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sun, 05 Nov 2006 21:52:30 GMT</pubDate>
      <guid>http://forum.geizhals.at/t455777,3755616.html#3755616</guid>
      <dc:creator>Linux_Sucks</dc:creator>
      <dc:date>2006-11-05T21:52:30Z</dc:date>
    </item>
  </channel>
</rss>
