Warum ist Java so schrecklich lahm und unflexibel? (Bitte sachliche Beiträge)



  • wäre ein Javaprogramm schneller als ein C++ Programm

    kann Java nicht schneller als C++ sein? - z.B. mein C++ Compiler übersetz für den größten gemeinsamen Nenner aller CPUs - d. h. kein Support für SSE2, da jemand versuchen könnte mein Programm auf nen Pentium II laufen zu lassen - die virtuelle Maschine erkennt aber, das ich SSE2 hab und optimiert den Code gleich dafür und läuft dadurch doppelt so schnell, weil es in einem char Array 16 Werte parallel bearbeiten kann... usw.

    ich hab festgestellt das meine C# Programme genauso schnell wie meine C++ und diese wiederum genauso schnell wie meine Java Programme sind

    ich würde die Wahl zwischen C++, C# und Java nicht davon abhängig machen das ich irgendwo gehört habe das C++ schneller wie C# oder Java ist - C++ ist eine schlanke Programmiersprache - Java bringt ein riesige gute Bibliothek - da muss man selber entscheiden was man will, das kann man schlecht pauschal sagen



  • @Vertex: Das kannst so nicht sagen, ich kann meinem C++-Compiler sagen, dass er zB für Pentium optimieren soll. Der erkennt das dann halt eben schon zur Compile-Time.

    MfG SideWinder



  • Vielleicht ist die VM in Java geschrieben und halt in Nativen Code übersetzt worden



  • fluxy schrieb:

    Ich will meinen Senf auch mal dazu geben:

    Java muss natürlich langsamer sein als C oder C++, da es doch über die jvm geht... Streng genommen gekommst du doch mit Java nur einen interpretierbaren Code ähnlich wie bei einer Scriptsprache, die die jvm jetzt parsen muss. Und das muss zwangsläufig langsamer sein als code, der direkt vom OS ausgeführt werden kann, das ist Punkt1.

    Allerdings bietet Sun da auch Abhilfe: Das ganze nennt sich "HotPlug" und bedeutet, dass Codeteile, die die jvm sehr oft ausführt, erkennt und direkt als Programmcode übersetzt. So laufen teile von Javaprogrammen, die oft ausgeführt werden ( etwa getter und setter von Objekten ) sehr viel schneller. Ich habe gehört das ein solcher code die selbe Performance bietet wie in C++.

    Auf der anderen Seite ist Java doch in C++ geschrieben ( habe ich auf jedenfall gelesen ) und es wäre echt merkwürdig, wäre ein Javaprogramm schneller als ein C++ Programm 😉

    Du irrst dich, es gibt keinen prinzipiellen Grund, warum Java langsamer sein muss als C++. Es ist nur eine Frage, wie gut der JIT-Compiler ist und der kann zur Zeit wohl noch nicht mit gängigen C++ - Compilern mithalten. Das Ding was du meinst, nennt sich btw. nicht "Hotplug", sondern Hotspot-Optimierung.



  • Vertexwahn schrieb:

    Vielleicht ist die VM in Java geschrieben und halt in Nativen Code übersetzt worden

    Ich habe den Source vorliegen und er sieht mir nach hässlichem C++ aus.



  • Optimizer schrieb:

    Vertexwahn schrieb:

    Vielleicht ist die VM in Java geschrieben und halt in Nativen Code übersetzt worden

    Ich habe den Source vorliegen und er sieht mir nach hässlichem C++ aus.

    Also doch in Java? :D:p

    Flame, nicht ernst nehmen ⚠

    MfG SideWinder



  • Hm, mich errinnnert schlechter Javacode ehr an C++ 😉
    Ist echt so.



  • Optimizer schrieb:

    Vertexwahn schrieb:

    Vielleicht ist die VM in Java geschrieben und halt in Nativen Code übersetzt worden

    Ich habe den Source vorliegen und er sieht mir nach hässlichem C++ aus.

    Wo hast du den denn her?



  • Den kannste bei Sun ziehen.



  • echt? das war doch immer closed source!!1

    ok werde mich mal auf die begeben aber ich glaube nicht das es finde. 😉



  • Gib mal den Link falls du es findest. 👍



  • Aber lest Euch vorher die Lizenz durch. Ist zwar OpenSource, aber trotzdem verkauft man damit sein Erstgeborenes. Oder so.



  • wurde net fündig. hat jemand den direktlink? 🙂



  • ganz btw: es gibt auch java vms die in java implementiert wurden. Bestes Beispiel: jnode.org Betriebssystem kopmlett in Java (vom bootloader mal abgesehen)



  • Roar schrieb:

    ganz btw: es gibt auch java vms die in java implementiert wurden. Bestes Beispiel: jnode.org Betriebssystem kopmlett in Java (vom bootloader mal abgesehen)

    Was soll das bringen? Wenn die VM in Java geschieben ist brauch sie selber ja auch eine Vm um zu laufen.



  • ne, brauchts nicht. Frag mich nicht wie das im Detail geht. bei oben genanntem beispiel ist die vm komplett in java, ausgenommen nativ kompiliertem code für das booten. Wenn du willst schau dir halt den sourcecode an :p



  • Entweder ist dann der Java-Code zu native code compiliert worden, oder er läuft auf einem Prozessor, der den Java-Bytecode versteht.



  • leak schrieb:

    wurde net fündig. hat jemand den direktlink? 🙂

    Ganz aktuell kannst du dir zum Besipiel auf folgender Seite einen aktuellen Schnappschuss der nächsten Javaversion runterladen:

    https://mustang.dev.java.net/

    Die kannst du da sowohl in kompilierter Form als auch als Source runterladen. Ich denke, den genauen Link solltest du auf der Seite schon finden können. 🙂



  • Optimizer, ist doch guter C++ Code. Nur wenig dokumentiert.



  • Gregor@Home schrieb:

    Optimizer, ist doch guter C++ Code. Nur wenig dokumentiert.

    Könntest du dir nen anderen Namen suchen?

    Der C++ Code von der JVM ist ja über lange Zeit gewachsen. Da sind sicherlich noch Dinge zu finden, die 1995 oder so geschrieben wurden. Da gab es noch nichtmal den aktuellen C++ Standard. Natürlich würde man da heutzutage viele Dinge anders schreiben, aber Sun muss da wohl selbst entscheiden, wann soetwas komplett überarbeitet wird.


Anmelden zum Antworten