|
|
Bit-Operationen möglichst vermeiden? |
|
dummy2k |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 05.09.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.11.2012, 14:27
Titel: Bit-Operationen möglichst vermeiden?
|
 |
Hallo,
mir vorhin soeben aufgefallen, dass das Skript mit Bitshift wesentlich langsamer ist, als wenn ich einfach die arithmetischen Operationen verwende, also "x * 2^y" bzw. "x / 2^y".
Da ich keine Ahnung habe wie Matlab arbeitet meine Frage:
Ist es in Matlab generell besser keine Bit-Operationen zu verwenden, sprich möglichst wie z.B. Bitshift ersetzen wie oben?
Gibs da irgendwelche Nachteile oder Auswirkungen, die ich beachte muß?
Danke im Voraus!
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 29.11.2012, 14:39
Titel:
|
 |
Mir ist das keine Einschränkung oder gute Praxis bekannt. Ich gehe davon aus, dass es viele Parameter gibt die das beeinflussen. Gerne schaue ich mir den Spezialfall an und vielleicht kann ich dann eine allgemeine Aussage machen.
Andreas
|
|
|
dmjr |

Forum-Century
|
 |
Beiträge: 199
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.11.2012, 15:31
Titel:
|
 |
Entscheidend ist der konkrete Anwendungsfall:
http://www.gomatlab.de/loop-vectorization-t26458.html
Ich denke du beziehst dich dabei auf den Code den ich dir geschrieben habe. Dabei kommt der Geschwindigkeitsvorteil nicht durch das ersetzen der Bitshift-Operationen durch Arithmetik sondern durch die Vektorisierung der Operationen. Wenn man das ganze mittels Bitshiftoperationen Vektorisiert ist es sicher vergleichbar schnell (soweit das möglich ist, ich hab es nicht hinbekommen).
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.11.2012, 17:04
Titel: Re: Bit-Operationen möglichst vermeiden?
|
 |
Hallo dummy2k,
Das deckt sich mit meinen Erfahrungen: BITSHIFT ist langsamer als eine Multiplikation. Das ist auch für Werte im DOUBLE-Format nicht anders zu erwarten. Allerdings ist dies so weit ich mich errinnere nicht der Fall, wenn man mit modernen Matlab Versionen (>= 2011) und Integer-Typen rechnet. Für das Bit-Shiften ist aber UINT64/32/16/8 etc sowieso sinnvoller.
Ob man das "beachten" muss, bleibt offen. Wenn dies die Laufzeit deines Programms von 4 Stunden auf 1 Stunde drückt, ist das natürlich wichtig.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|