WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bit-Operationen möglichst vermeiden?

 

dummy2k
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 05.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2012, 14:27     Titel: Bit-Operationen möglichst vermeiden?
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 29.11.2012, 14:39     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2012, 15:31     Titel:
  Antworten mit Zitat      
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).
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.11.2012, 17:04     Titel: Re: Bit-Operationen möglichst vermeiden?
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.