1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Freier Compiler LLVM soll…

Plattformunabhängige Binaries

  1. Thema

Neues Thema Ansicht wechseln


  1. Plattformunabhängige Binaries

    Autor: *v* 21.11.05 - 12:45

    Plattformunabhängigkeit scheint mir bei den vielen von Linux und BSD unterstützten Systemarchitekturen doch ein sehr reizvolles Thema zu sein. Die Erzeugung von Binaries mit einem virtuellen Befehlssatz in Verbindung mit einem JIT-Compiler birgt allerdings wieder potentielle Performance-Nachteile und höheren Ressourcen-Verbrauch. Damit disqualifiziert es sich schon mal für den Einsatz in sehr zentralen Anwendungen, wie z.B. X-Server oder Desktop-Umgebung.
    Daher eine vielleicht dumme Idee:
    Wäre es nicht denkbar Pakete mit dem virtuellem Befehlsatz (plattformunabhängig) auszuliefern) und die Anpassung auf die eigene Plattform anstatt von einem JIT-Compiler von einer Komponente des Paketmanagers (rpm, dpkg etc.) übernehmen zu lassen. Also ein schneller Compiler während der Installation. Das sollte sehr viel schneller und einfacher zu machen sein, als die direkte Installation à la Gentoo (oder ähnliche Projekte). Andererseits würde es die ständige Neucompilierung während der Laufzeit à la Java überflüssig machen.
    Aber vielleicht ja nur eine dumme Idee von jemandem, der zu wenig Ahnung hat...

    *v*
    ( )
    "="===============================================
    two and two is five - for very large values of two

  2. Re: Plattformunabhängige Binaries

    Autor: chr1701 21.11.05 - 13:08

    Wäre sicher möglich. aber im endeffekt ist das ja auch ein JIT-compiler. normalerweise übersetzt der JIT-compiler den bytecode in maschinencode, und zwar vor der programmausführung. Dein Vorschlag macht die übersetzung halt schon früher, bei der Installation. Sonst ist es nix neues :)

    Andererseits hat ein Bytecode viele Vorteile, vor allem zum Debuggen. Und der Geschwindigkeitsunterschied fällt heutzutage nur noch sehr selten ins Gewicht - höchstens bei wissenschaftlichen Anwendungen oder Server-Prozessen, die im hintergrund laufen und möglichst wenig Ressourcen verbrauchen sollen.

    grüsse
    chris

  3. Re: Plattformunabhängige Binaries

    Autor: Slark 21.11.05 - 13:38

    Das ist gar nicht dumm und wird auch schon gemacht (wobei ich nicht weiß, ob man das im Zusammenhang mit LLVM auch schon gemacht hat). In der Windowswelt dürfte wohl C#(/CIL) das prominenteste Beispiel sein, bei dem dies während der Installation möglich ist.

    Ich wäre auf jedenfall daran interessiert, dass man so etwas ermöglicht. Ob es nun über CIL oder LLVM geht, ist mir relativ egal, da ich nicht weiß welche der beiden Techniken für mich die bessere wäre.

    Was mich aber wirklich geschockt hat, ist das ersetzen vom Tree-SSA-Optimizer. Ich hoffe nur, dass wirklich nur der Optimizer und nicht die ganze Tree-SSA Darstellung ersetzt wird. Vielleicht meinte man ja auch nur den Teil, der direkt architekturspezifisch Optimiert (zum Beispiel Vektorisierung, etc.).

  4. Re: Plattformunabhängige Binaries

    Autor: erwin 21.11.05 - 15:09

    chr1701 schrieb:
    -------------------------------------------------------
    > Wäre sicher möglich. aber im endeffekt ist das ja
    > auch ein JIT-compiler. normalerweise übersetzt der
    > JIT-compiler den bytecode in maschinencode, und
    > zwar vor der programmausführung. Dein Vorschlag
    > macht die übersetzung halt schon früher, bei der
    > Installation. Sonst ist es nix neues :)

    Nicht ganz, was du jetzt meinst ist ein AOT(ahead-of-time)-Compiler. Ein JITter übersetzt es immer noch während der Ausführung, also just-in-time. Aber ansonsten wäre es trotzdem ein brauchbare Lösung. Durch den Byte-Code würden die Applikationen dann auch wesentlich kleiner ausfallen.

  5. Re: Plattformunabhängige Binaries

    Autor: *v* 21.11.05 - 17:36

    chr1701 schrieb:
    -------------------------------------------------------
    > Wäre sicher möglich. aber im endeffekt ist das ja
    > auch ein JIT-compiler. normalerweise übersetzt der
    > JIT-compiler den bytecode in maschinencode, und
    > zwar vor der programmausführung. Dein Vorschlag
    > macht die übersetzung halt schon früher, bei der
    > Installation. Sonst ist es nix neues :)

    Nicht nur frueher, sondern auch nur ein einziges Mal. Und man braeuchte keine parallel laufende VM.

    > Andererseits hat ein Bytecode viele Vorteile, vor
    > allem zum Debuggen. Und der
    > Geschwindigkeitsunterschied fällt heutzutage nur
    > noch sehr selten ins Gewicht - höchstens bei
    > wissenschaftlichen Anwendungen oder
    > Server-Prozessen, die im hintergrund laufen und
    > möglichst wenig Ressourcen verbrauchen sollen.

    Fuer einzelne Anwendungen ist Bytecode + JIT-Compiler sicherlich O.K. Wollte man das allerdings zum allgemeinen Prinzip der Paketinstallation erheben, also auch fuer Systemkomponenten, evtl. auch fuer den Kernel selbst (bei Kernel-Updates), dann sollte man das vielleicht nicht unbedingt ueber eine Software-VM machen.



  6. Re: Plattformunabhängige Binaries

    Autor: Tropper 21.11.05 - 20:50

    erwin schrieb:
    -------------------------------------------------------
    > chr1701 schrieb:
    > --------------------------------------------------
    > -----
    > > Wäre sicher möglich. aber im endeffekt ist
    > das ja
    > auch ein JIT-compiler. normalerweise
    > übersetzt der
    > JIT-compiler den bytecode in
    > maschinencode, und
    > zwar vor der
    > programmausführung. Dein Vorschlag
    > macht die
    > übersetzung halt schon früher, bei der
    >
    > Installation. Sonst ist es nix neues :)
    >
    > Nicht ganz, was du jetzt meinst ist ein
    > AOT(ahead-of-time)-Compiler. Ein JITter übersetzt
    > es immer noch während der Ausführung, also
    > just-in-time. Aber ansonsten wäre es trotzdem ein
    > brauchbare Lösung. Durch den Byte-Code würden die
    > Applikationen dann auch wesentlich kleiner
    > ausfallen.

    Um mal bei den dummen Fragen zu bleiben, ich hab mich mal gefragt warum Java nicht (wenn auch nur optional) einen Mechanismus verwendet mit dem die Ergebnisse des JIT-Compiler gespeichert werden. So das er einmal kompilierten Code beim nächsten Start einfach von der Platte laden kann. Ich hab zwar keine Ahnung wieviel Zeit für den JIT-Compiler wirklich draufgeht, aber ich stell mir das beim 2. Start halt doch einen Tick schneller vor.

    Es müßte dann natürlich eine Art temporären Cache geben in dem die "wirklich" kompilierten Planttformanhägigen Binärie-Class Dateien liegen so das die Leute beim Kopieren nur die Plattform unabhängigen .class Dateien weiter geben und nicht die echten Binäries. Und ich muss die Möglichkeit haben den Cache expliziet zu löschen bzw. ich muss ein maximum an Plattenplatz bestimmen können den er verwendet und bei erreichen halt ältere Binäries die ich nicht so oft verwende löschen um Platz für neue Binarier zu erstellen.

    Tropper




    1 mal bearbeitet, zuletzt am 21.11.05 20:52 durch Tropper.

  7. Re: Plattformunabhängige Binaries

    Autor: firedancer 23.11.05 - 02:48

    *v* schrieb:
    -------------------------------------------------------
    > Plattformunabhängigkeit scheint mir bei den vielen
    > von Linux und BSD unterstützten
    > Systemarchitekturen doch ein sehr reizvolles Thema
    > zu sein. Die Erzeugung von Binaries mit einem
    > virtuellen Befehlssatz in Verbindung mit einem
    > JIT-Compiler birgt allerdings wieder potentielle
    > Performance-Nachteile und höheren
    > Ressourcen-Verbrauch.

    Tja. Gleichzeitig bringt er potentielle Performance-Vorteile, da der Bytecode prozessoroptimiert übersetzt werden kann. Dieser dürfte dann um etliches schneller laufen als Standard-Binaries.

    Ist in jedem Fall eine interessante Technik. Die Frage ist nur, ob Gentoo sowas nicht vollkommen obsolet macht ;-))))))))

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Verkehrsbetriebe Karlsruhe GmbH, Karlsruhe
  2. über duerenhoff GmbH, Raum Frankfurt
  3. STADT ERLANGEN, Erlangen
  4. Fidor Solutions AG, München

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (u. a. Dark Souls 3 Deluxe Edition für 12,50€, Moonlighter für 6,66€, Assassin's Creed...
  2. 38,99€
  3. (u. a. Forza Horizon 4 für 29,99€, Gears 5 für 29,99€, Halo 5: Guardians für 10,99€)
  4. (u. a. Gigaset C570HX Universal-Mobilteil für 29€, Gigaset AS690 Duo für 48,99€, Gigaset...


Haben wir etwas übersehen?

E-Mail an news@golem.de