C++ oder Java

Diskutiere C++ oder Java im Developer Network Forum im Bereich Hardware & Software Forum; Naja, der Vergleich OpenGL zu DirectX hinkt aber schon ein Wenig. Das ist etwa wie Notepad zu Office. :) Die meisten Leute sehen leider bei...
  • C++ oder Java Beitrag #21
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Naja, der Vergleich OpenGL zu DirectX hinkt aber schon ein Wenig. Das ist etwa wie Notepad zu Office. :) Die meisten Leute sehen leider bei DirectX nur das augenscheinliche - die Grafik, dabei ist es VIEL mehr.

Das soll aber keine Kritik an OpenGL sein; das macht seine Sache sehr gut, soweit ich weiß. Ist schon ziemlich lange her, dass ich mich damit beschäftigt habe.
 
  • C++ oder Java Beitrag #22
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
  • C++ oder Java Beitrag #23
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Du verwechselt da etwas.
Bei Java hast du Bytecode, bei C++ Maschinencode.
Das JavaRuntime-Enviroment erzeugt zur Laufzeit den für das jeweilige System notwendigen Maschinencode, der dann gecacht werden kann.
Dieser erzeugte Maschinencode kann gecacht werden, sodass die notwendige Kompilierung zur Laufzeit entfallen kann. Das Problem der Indexprüfung bleibt aber bestehen, da führt kein Weg dran vorbei.

http://www.zdnet.de/sicherheits_ana...s_ist_besiegelt_story-39001544-41003020-4.htm
Hier ist das ganze auch nochmal sehr schön erklärt.
 
  • C++ oder Java Beitrag #24
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

das liegt aber nicht an Java sondern am Compiler. Nimmst Du den GNU Compiler kannst Du den auch unmanaged code erzeugen lassen.

Aber in der Regel bringt das kaum Geschwindigkeitszuwachs - ist halt abhaengig davon, was man macht.

Gruss, FFNB.
 
  • C++ oder Java Beitrag #25
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Java Code ist immer managed und managed Code ist langsamer.
Der Microsoft Compiler erzeugt auch standarmäßig unmanaged Code.
 
  • C++ oder Java Beitrag #26
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Von Managed Code spricht man eigentlich nur bei .NET. Welchen Code der C/C++-Compiler vom Microsoft erzeugt hängt vom ausgewählten Projekt ab. Default gibt's da keinen.

Java wird in Bytecode kompiliert, der dann von einer Virtuellen Maschine ausgeführt wird. Das Ausführen des Bytecodes ist natürlich langsamer als Maschinencode. Mit der Entwicklung der JIT-Compiler wird dieser Nachteil aber zum Großteil aufgehoben. Der JIT kompiliert zur Laufzeit den Bytecode in Maschinencode, so daß dieser unter Umständen sogar schneller ist als der Maschinencode eines C++-Programms, da dieser das Laufzeitverhalten in seine Optimierungen miteinbeziehen kann.

Natürlich ist Maschinencode ohne Indexüberprüfung schneller als mit. Allerdings spielen die paar Taktzyklen in 99,99% aller Programme absolut keine Rolle. Außer man betreibt Numbercrunching mit Millionen von Rechenoperationen pro Sekunde.
 
  • C++ oder Java Beitrag #27
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Von Managed Code spricht man eigentlich nur bei .NET. Welchen Code der C/C++-Compiler vom Microsoft erzeugt hängt vom ausgewählten Projekt ab. Default gibt's da keinen.
Falsch. Managed bedeutet unter anderem, dass es einen Garbage Collektor gibt und somit keine Speicherlecks entstehen können.

Allerdings spielen die paar Taktzyklen in 99,99% aller Programme absolut keine Rolle.
Global spielt das eine enorme Rolle, da hierdurch ein viel höherer Stromverbrauch zu stande kommt. Bei Laptops merkt man es dann direkt an verringerter Akkulaufzeit.
 
  • C++ oder Java Beitrag #28
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
...Das Problem der Indexprüfung bleibt aber bestehen, da führt kein Weg dran vorbei....
Der vorhin erwaehnte GNU-Compiler kann mit der Option "--no-bounds-check" diese Pruefung unterbinden. Von daher ist "da fuehrt kein Weg dran vorbei." so nicht richtig.

Java Code ist immer managed und managed Code ist langsamer.

Das Code, welcher in einer VM laeuft, als Managed bezeichnet wird, hab ich ja nun eingesehen. ;) Aber wie kommst Du darauf, dass managed Code grundsaetzlich langsamer sein soll? Die Indexpruefung kann man ja nun schonmal aussen vor lassen, da abschaltbar. Managed muss ja nicht zwingend overhead bedeuten, welcher verlangsamt sondern kann auch optimierungspotential bergen.

Vielleicht sollten wir mal ein Apfelmaennchen bauen. Du in C und ich in Java und dann "benchen" wir mal um die Wette. ;)

Gruss, FFNB.

PS: Nein, dass soll kein "rumgeflame" werden, mich interessiert wirklich wie Du darauf kommst.
 
  • C++ oder Java Beitrag #29
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Der vorhin erwaehnte GNU-Compiler kann mit der Option "--no-bounds-check" diese Pruefung unterbinden. Von daher ist "da fuehrt kein Weg dran vorbei." so nicht richtig.
Der GNU Compiler erzeugt doch C Code. Java Code nur der Compiler von Sun oder irre ich?

Und wie gesagt da ist dann noch das Problem bei der Vererbung und dem Überschreiben von Methoden. Bei Java muss immer in einer Tabelle nachgeschaut werden, welche Methode mit dem selben Namen zum Einsatz kommen soll (Polymorphismus). Bei C++ geschieht das nur, wenn die Methoden explizit als virtual und damit als überschreibbar deklariert wurden.
 
  • C++ oder Java Beitrag #31
the ubm

the ubm

Senior Moderator
Dabei seit
29.05.2005
Beiträge
9.464
Reaktionspunkte
1
Ok danke. Wieder was dazugelernt.
Es ist tatsächlich möglich die Überprüfung der Indizes zu deaktivieren.

Ein gewisser Overhead muss aber weiterhin existieren, da sonst der Ausdruck "array.length" welcher die Größe des Arrays zurückliefert nicht funktionieren würde.
 
Thema:

C++ oder Java

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben