Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phili

unregistriert

1

01.07.2006, 10:39

Wie viel bringt Assembler wirklich?

Ich hab mich schon öfter gefragt, ob es sich vieleicht lohnt, Rechenintensive Funktionen in Assembler zu schreiben. Man hört ja immer wieder, das sei zehn mal so schnell wie C++. Aber man hört ja viel...
Also: Wie viel bringt das wirklich?

Anonymous

unregistriert

2

01.07.2006, 10:51

Bei aktuellen Compilern und "normalen" Projekten nicht viel. Beim berechnen enormer Datenmengen (EchtzeitFilter etc) können aber einige Prozent rausspringen. Wenn ein Programm zb nur zu "einem" Zweck vorhanden ist kann es sich lohnen.

Man sollte aber immer vorher prüfen ob es wirklich nötig ist, man diese paar % Resource wirklich braucht.

Bei kleineren Systemen mit begrenzten Resourcen kann dies manchmal nötig sein um auch das "letzte" rauszuholen. Aber auch diese Optimierung sollte dem Gewinn/Aufwand gerechtfertig sein.

cu

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

01.07.2006, 10:55

Also bei moderaten Projekten wie Abbrexxes schon sagte kaum was, bis gar nichts.

Bei Projekten wo man etwas näher in die Materie einsteigen will z.B. zum Selbststudium und die Architektur eines Mikroprozessors z.b. besser kennen zu lernen ist es aber von Vorteil. Dennoch nutzt man dort auch meist C Programme. Ich bin aber trotzdem der Meinung das jeder mal Assembler gemacht haben sollte.

Phili

unregistriert

4

01.07.2006, 10:58

@Abrexxes

Achso, also doch nur nen paar Prozent. Nee, dass ist mir die Mühe nicht wert.

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

5

01.07.2006, 17:09

Ich bin mit Assemblern nicht vertraut, hatte vor 2 Jahren mal ein kleineres projekt zum auslesen eines Tasters auf einer Leiterplatte. Jedenfalls.. Bei Assemblern muss man doch die Prozessorarchitektur beachten, also 8086 und was es da alles gibt. Jetzt gibt es ja zb DualCore Prozessoren.. Muss man dafür immer komplett neuen Code schreiben?
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

Phili

unregistriert

6

01.07.2006, 18:08

@riCo

Ich schätz mal alles, was der Gleiche Kompiler auf nem System um laufen bekommt ist auch die gleiche assemblersprache. Wenn du jetzt aber deinen MP3-Player programmieren willst, wirst du ne andere brauchen.
->Soweit ich weiß nein

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

7

01.07.2006, 21:08

Es gibt einen Assembler und mehrere Befehlssätze. So gibt es z.B. den Befehlssatz des x86 Prozessors, die heut auch noch verwendet wird. Je nach CPU / Mikroprozessor hast du einen komplexeren Befehlssatz mit mehreren Adressierungsarten (CISC) oder einen mit weniger bis nur auf die Grundfunktionen (RISC).

Wenn eine CPU mehrere Kerne hat kann theoretisch der eine den nächsten Befehl+Daten holen, die andere dann wieder den übernächsten etc.
Das holen an sich macht aber die Hardware. Genau dazu ist auch ein guter Compiler da, der solche Vorgänge optimieren kann so dass kein Kern "in der Luft hängt".

Auch aus diesem Grund sind Compiler bei größeren Programmen besser und daher auch evtl. schneller.

Bei Mikroprogrammen ist die Architektur des Prozessors recht simple und meist ist es auch einfacher wenn man dort einfach ein paar Ports per Assembler steuern kann.

Werbeanzeige