Was ist schneller?
-
Hi,
Wenn ich ein Berechnungs Programm in C/C++ Schreibe und es Unter Windows Laufen
lasse oder wenn ich das Programm in Asm schreibe(16 bit) und es dann in den
Bootsektor einer diskette schreiben lasse und es davon starte?MFG Dieter_M
-
Bevor du mit dem Gedanken spielst das in ASM zu schreiben solltest du dich da erstmal richtig einarbeiten, sonst ist die Windows+C Variante nämlich schneller.
-
Da müsstest du dich schon sehr anstrengen, dass du etwas im 16bit-Modus schneller bekommst als im 32bit-Modus. Bei den meisten praxisrelevanten Berechnungsaufgaben ist es wahrscheinlich gar nicht möglich.
-
was willst du den berechnen?
-
Windows hat einen lahmen Taskscheduler, d.h. es kann sein, daß das Programm öfters für 20 ms oder mehr gar nicht drankommt.
Über die Escape-Sequenzen (Operand Size Prefix, 066h) kann man auch 32-Bit-Operationen im 16-Bit-Modus ausführen. MMX und SSE müßten auch gehen. Die Performance müßte im Vergleich zum 32-Bit-Modus ungefähr identisch sein. Jedoch hat man im 16-Bit-Modus noch das Problem mit der Adressierung, was den Code etwas umständlicher macht.
Aber ich glaube auch, daß ein Assemblerprogramm, das ohne Betriebssystem läuft, schneller ist als ein C/C++ Programm unter Windows. VIEL schneller.
Dazu kommt nämlich noch, daß man von Hand immer besser optimieren kann als die handelsüblichen Compiler. VC++ Standard Edition optimiert nämlich überhaupt nicht.
Die Optimierungsregeln stehen füŕ die jeweiligen Prozessoren stehen ja in den Intel-Handbüchern.