V
redrew99 schrieb:
Eine Vermischung von C/C++ wurde teilweise damit begründet, C++ Code mit C in Bezug auf die Geschwindigkeit zu optimieren.
Wäre da nicht Assembler viel besser für geeignet?
Zeige mir einen Assembler-Programmierer, der auf modernen CPUs mehr herausholt, als der {C/C++}-Compiler, der rattenscharf alle Befehle in die Pipelines so reinsortiert und umsortiert, daß keine unnötigen Lücken entstehen.
Normale Sachen per Hand in ASM sind erbärmlich. ASM ist erst dann gut, wenn man Sachen wie RDTSC oder BSF macht, die {C/C++} nicht bereitstellen. Und dann sollte man diese Befehle als inline-Funktion mit drinnen inline-asm bereitstellen. Damit der Optimierer sogar das fein umsortieren kann. MS sortiert sogar supi locker um, auch über Funktionsgrenzen hinaus und gleichzeizig in die inline-asm-Sequenzen hinein. GCC leider nicht. Da muß man jeden einzelnen Befehl als eigene inline-asm-Sequenz absetzen. Dann kann er er aber auch und sortiert frei herum und macht irgendwas geiles daraus, was man per Hand nur mit vielen Messungen, dem Taschenrechner und ca 10 Minuten pro asm-Befehl schaffen würde.
hihi.
Und daß C++ wegen des Exception-Handlings, das inzwischen zu null Laufzeitkosten geschehen kann, solange keine fliegt, gleichwertigen C-Code plattmacht, habe ich schon woanders bewiesen.