Immer noch: Intel Compiler benachteiligt AMD CPUs

Hey mal nicht so sakastisch ;D.

Aber du verstehst was ich meine? Wäre ich ein so fähiger Programmierer, würde ich sicher sofort damit anfangen...

...aber dann würde ich auch nur noch in Assembler mit euch reden! ;D
 
Die Zeiten sind vorbei, heutzutage werden solche Monsterprojekte nur noch in Hochsprachen entwickelt. ASM wird nur für sehr sehr kleine performance-kritische Routinen verwendet, ein Compiler muss nicht auf Teufel kom raus in einer gewissen Zeit übersetzen *chatt*

errr... wobei die ausgabe ins asm erfolgt, ok :)
 
Zuletzt bearbeitet:
Ja stimmt...hatten wir damals auch so gemacht mit diesem Pseudo-Compiler, dafür hatten wir Haskell genommen.
 
wobei die ausgabe ins asm erfolgt, ok :)
Nö, die Ausgabe erfolgt in Maschinencode. ASM ist die Programmiersprache dafür. Etwas Klugscheisserei muss sein. ;D

Aber mich würde mal interessieren, welche Marktanteile der ICC hat. Die meisten Firmen werden sich den zusätzlichen Schmerz (unter Windows) wohl nicht antun. Der ICC ist beim Compilieren arschlahm, was während der Programmentwicklung nur hinderlich ist.

Am ehesten könnte ich mir den Einsatz noch in rechenintensiven Applikationen, wie Video-Encoding, vorstellen. Bei Games wäre der Einsatz wohl eher kontraproduktiv, da hier oft AMD das bessere P/L-Verhältnis hat.
 
Nö, die Ausgabe erfolgt in Maschinencode. ASM ist die Programmiersprache dafür. Etwas Klugscheisserei muss sein. ;D
Gibts da nicht eine Zwischenschicht im ASM?

Aber mich würde mal interessieren, welche Marktanteile der ICC hat. Die meisten Firmen werden sich den zusätzlichen Schmerz (unter Windows) wohl nicht antun. Der ICC ist beim Compilieren arschlahm, was während der Programmentwicklung nur hinderlich ist.
Kommt drauf an mit welchen Opts man kompiliert, ansonsten einfach mit dem MS-kompiler kompilieren und wenn es fertig entwickelt ist per ICC kompilieren. Wobei ich jetzt keine spürbaren zeitlichen unterschiede festegestellt hatte, als ich die milkyway-app optimiert habe.
 
Erfolgt die Ausgabe nicht grundsätzlich in Maschinencode, wenn man ne Binärdatei erstellt? *suspect*
 
Erfolgt die Ausgabe nicht grundsätzlich in Maschinencode, wenn man ne Binärdatei erstellt? *suspect*
Genau das wollte ich sagen. Der Prozessor versteht nur Zahlen ...

Man kann bei vielen Compilern aus C/C++-Code auch ASM generieren, aber das ist eher eine Spielerei, um zu sehen, wie effizient die Anweisungen sind.

Hatte auch schon nach den Marktanteilen des ICC gegoogelt, aber nichts gefunden. Wenn die relevant wären, würde die Intel wahrscheinlich hinausposaunen.
 
Man kann bei vielen Compilern aus C/C++-Code auch ASM generieren, aber das ist eher eine Spielerei, um zu sehen, wie effizient die Anweisungen sind.

Nein. Compiler geben grundsätzlich erst mal ASM Code aus. Der wird nur normalerweise direkt in den Assembler gepiped. Wenn du dir den ASM Code ausgeben lässt stoppst du den Kompiliervorgang nur bevor der Assembler aufgerufen wird.

Genauso wird danach noch gelinkt, was auch nicht direkt mit dem Compiler zusammenhängt. Das sind alles einzelne Programme, welche nur in Zusammenarbeit am ende den Maschinencode erzeugen.
 
Wie siehts eigentlich mit GCC aus? Der dürfte ja einigermaßen neutral sein. Warum wird der nicht öfter in großen Projekten genutzt?
 
Wie siehts eigentlich mit GCC aus? Der dürfte ja einigermaßen neutral sein. Warum wird der nicht öfter in großen Projekten genutzt?

Hab mal gelesen, der erzeugt im Vergleich zum ICC teils grottenlahmen Code.
 
Irgendwie schreit das ganze nach einem einheitlichen Standardcompiler. Einer unabhängigen Institution die einen Compiler schreibt, der für jede Architektur hochoptimierte Codepaths bereitstellt. Deswegen wundert es mich, dass GCC wirklich so lahm ist. Es kann doch jeder seine Verbesserungen einbringen oder? Dort sollte AMD ansetzen und ähnlich wie bei den freien Radeon Treibern Unterstützung bieten. (Wobei das wieder mal den guten Steve Ballmer verärgern könnte ) ...
 
Wie siehts eigentlich mit GCC aus? Der dürfte ja einigermaßen neutral sein. Warum wird der nicht öfter in großen Projekten genutzt?
Der wird in sehr großen Linux- und oft auch in UNIX-Projekten genutzt. Windows steht da nicht im Focus.

Linux/Unix spielen eine große Rolle in wichtigen oder gar sicherheitskritischen Bereichen, z.B. in der Telekommunikation oder der Bahntechnik.

Da ist der Marktanteil von MS nahe Null, der vom ICC unter *x ist wahrscheinlich noch überschaubarer als unter Windows.
Nein. Compiler geben grundsätzlich erst mal ASM Code aus.
Naja, da habe ich meine erheblichen Zweifel. Ich behaupte, wenn ich mir ein *.obj-File ansehe, finde ich darin keinen Assembler. Das ist verschiebbarrer Maschinencode, der sicherlich irgendeinem Standard gehorcht, aber kaum menschenlesbar ist.

Bin aber kein Experte auf dem Gebiet. Aber wenn es ASM wäre, müsste man den einfach aus den Objectfiles (Windows, Unix, Linux, ..) ausdrucken können. Also, wie geht das? ;)
 
Zuletzt bearbeitet:
Meinst du etwa das in den obj-files der asm im klartext stehen muss damit DU es als asm verstehst? *chatt*
 
Der GCC ist sehr gut bei C-Code, aber ziemlich schlecht bei C++-Code.
 
der asm welcher in hex-form und nicht als klartext gespeichert ist, ist trotzdem asm.
http://en.wikipedia.org/wiki/Assembly_language
Nö, die englische Variante ändert nichts. Da steht u.a.:
"They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture."
"Typically a modern assembler creates object code by translating assembly instruction mnemonics into opcodes, and by resolving symbolic names for memory locations and other entities."

Kurz: Assembler(sprache) ist eine Programmiersprache, die durch die Compilierung in Maschinencode (OpCode) übersetzt wird. Insofern ist da kein prinzipieller Unterschied zu C, man ist nur ganz dicht dran am Prozessor (und damit prozessorabhängig).

Sicherlich wird im Sprachgebrauch Assembler gern mit Binärcode (Maschinencode, Opcode, ...) gleich gesetzt, korrekt ist es trotzdem nicht.
.
EDIT :
.

Der GCC ist sehr gut bei C-Code, aber ziemlich schlecht bei C++-Code.
Quelle? Angelesen oder eigene Erfahrungen?
 
Quelle? Angelesen oder eigene Erfahrungen?
Das ist das, was man von den ReactOS-Entwicklern seit Jahren immer wieder auf der Mailing-Liste und im IRC "hört". Kann allerdings auch sein, dass das nur für den Mingw-Port von GCC gilt (würde mich aber wundern).
Die ReactOS-Jungs beziehen sich da auch gar nicht mal so sehr auf die Geschwindigkeit des erzeugten Codes, sondern mehr auf Bugs und Inkompatibilitäten zwischen den einzelnen Versionen.
 
Das ist das, was man von den ReactOS-Entwicklern seit Jahren immer wieder auf der Mailing-Liste und im IRC "hört".
Naja, das sind vielleicht auch subjektive Befindlichkeiten. Irgend jemand meckert immer.

Wie bereits gesagt, sind Windows(-like) OS nicht im Scope des g++, unter Linux gibt es zum g++ sowieso keine Alternative.

Ob nun unter Solaris (CC) oder hpux (acc) die nativen Compiler oder der g++ genommen werden, wird eher durch die Finanzlage bestimmt, als durch Performanceunterschiede im niedrigen Prozentbereich.

Wie auch immer, kennt jemand denn nun Applikationen, die mit dem ICC compiliert wurden? Kann man das abtesten?
 
die 3DMurkse z.B.
 
Nö, die englische Variante ändert nichts. Da steht u.a.:
"They implement a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture."
"Typically a modern assembler creates object code by translating assembly instruction mnemonics into opcodes, and by resolving symbolic names for memory locations and other entities."
Habe ich das in Frage gestellt? :]
Kurz: Assembler(sprache) ist eine Programmiersprache, die durch die Compilierung in Maschinencode (OpCode) übersetzt wird. Insofern ist da kein prinzipieller Unterschied zu C, man ist nur ganz dicht dran am Prozessor (und damit prozessorabhängig).

Sicherlich wird im Sprachgebrauch Assembler gern mit Binärcode (Maschinencode, Opcode, ...) gleich gesetzt, korrekt ist es trotzdem nicht.
Du glaubs mir immer noch nicht das ams-dateien NICHT immer im klartext ASM-Code enthalten müssen, sondern auch im Hex-format gespeichert werden kann?!

[nicht nur den 1. absastz im wiki lesen]
 
Habe ich das in Frage gestellt? :]
Du glaubs mir immer noch nicht das ams-dateien NICHT immer im klartext ASM-Code enthalten müssen, sondern auch im Hex-format gespeichert werden kann?!
Nein, natürlich nicht. Bisher hast du auch nichts angebracht, was meine Meinung ändern könnte. Wo ist denn jetzt wenigstens ein knackiges Zitat? ;)

Der Begriff Assembler wird in zwei Bedeutungen benutzt: als Programmiersprache und als "Compiler". Etwas verwirrend, aber völlig korrekt ist z.B.: Ich habe Assembler mit dem Assembler assembliert und Maschinencode erhalten.
 
Zurück
Oben Unten